# Backupfiles from mergetools #
*.orig

# Java Class Files #
*.class

# Package Files #
*.jar
*.zip

# Eclipse #
bin/
classes/

# Maven #
target/
.mvn/
.surefire-*
.flattened-pom.xml

# settings files are handled in rt-feature project and settings files should not be changed (can be enforecd with 'git add .settings -f')
/.settings
/.project

# IntelliJ IDEA #
/.idea/**/workspace.xml
/.idea/**/tasks.xml
/.idea/**/usage.statistics.xml
/.idea/**/dataSources.local.xml
/.idea/**/jarRepositories.xml
/.idea/**/shelf
/.idea/sonarlint
/.idea/**/dataSources/
/.idea/httpRequests/
/.idea/libraries/
/.idea/artifacts/

org.eclipse.scout.sdk.s2e*/META-INF/MANIFEST.MF
