# Gearpump
jarstore/
logs/

# Scala
*.class
*.log
_site/
.cache/
.history/
.lib/
dist/*
target/
lib_managed/
src_managed/
project/boot/
project/plugins/project/
.scala_dependencies
.worksheet

# Java
*.jar
*.war
*.ear
hs_err_pid*

# IntelliJ
/*.iml
out/
.idea/
*.ipr
*.iws
.idea_modules/
atlassian-ide-plugin.xml
com_crashlytics_export_strings.xml
intellij

# Eclipse
.metadata
.project
.cache
.classpath
tmp/
*.tmp
*.bak
*.swp
*~.nib
local.properties
.settings/
.loadpath
.externalToolBuilders/
*.launch
.target
