# Created by https://www.gitignore.io

### Maven ###
target/
pom.xml.tag
pom.xml.releaseBackup
pom.xml.versionsBackup
pom.xml.next
release.properties

### Java ###
*.class

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

# Package Files #
*.jar
*.war
*.ear

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

# Linux temporary files
*~

# Eclipse specific project files
.classpath
.project
.settings

# Netbeans specific project files
nbactions.xml

# IntelliJ specific project files
.idea
*.iml