Maven is a build automation tool for java (though it can also be used for other languages). It has the ability to pull in java libraries and maven plugins from a network repository.
All build files will go in ./target and it is a good idea to ignore that in your version control.
High-level file directory looks like this:
├── pom.xml - define project parameters here
├── src
│ ├── main
│ │ └── java - deliverable java source code
│ └── test
│ └── java - java test source code
└── target - where all build files go
To pull in a skeleton project with maven:
mvn archetype:generate
To build a maven report site:
mvn site
To compile, run tests, and build your jar file:
mvn package
To run tests separately:
mvn test