# Eclipse project files 
.classpath
.project
.settings/
.checkstyle

# IntelliJ project files
*.idea
*.iml
*.ipr
*.iws

# Additional tools
.clover/

# OSX files
.DS_Store

# Compiler output, class files
*.class
bin/

# Log file
*.log

# BlueJ files
*.ctxt

# Mobile Tools for Java (J2ME)
.mtj.tmp/

# Package Files #
*.jar
*.war
*.ear
*.zip
*.tar.gz
*.rar

# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
hs_err_pid*

#Test config and output
test-output/
local/
reports/
.pmd
tmp/

# Build artifacts
target/
out/
build/
jarsIn/
*.jar
build.xml
*.properties
*.releaseBackup
*.next
*.tag

# Jekyll
_site/
_*
_*/
