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

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

# 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
/target/
test-output/
local/
reports/
.pmd
tmp/

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

# Jekyll
_site/
_*
_*/
