Introduction
A Java project building tool has functions of compiling, testing and downloading the required 3rd party packages. Java project has three main alternate building tools, Ant, Maven and Gradle. Ant and Maven build project according to XML. Gradle use its own DSL based on Groovy or Koltin (* Groovy and Koltin are two programming languages), and still use Maven's central repo for downloading dependencies.
When building a Java project, developer should give the project name, version, and its dependencies.
Java project vs. .NET project
A java project have the code and test code together. A .NET project makes them as separate projects but in a solution of Visual Studio. It means when releasing a java program, we may not release its test and don't need test dependencies, such as Junit. So for a java project, there are three different kinds of dependencies, runtime, test, and provide dependencies. Provided dependencies is the product environment will provide the dependencies, e.g. Java servlet, but we still need have the dependencies in our environment when developing.