Maven manage your module&#x2F;projects from building, dependency management, generating project website (if you want to), deals with packaging, and deployment (if you want to), and many more (via plugins).<p>Maven is essentially NuGet+MSBuild or Ant+Ivy or Bundler+Gem+Rake without having to manage build tasks manually.<p>Those tasks are:
1. Compile code
2. Compile test code
3. Run unit-test
4. Run integration-test (separately from unit-test)
5. Setup paths for running unit-test (say you want to use different config&#x2F;resource files for your unit-test)
6. Package your artifacts _without_ the unit-test artifacts<p>Maven has these built-in and in a non-disruptive manner. Don&#x27;t have unit-tests? Maven won&#x27;t run anything for you.<p>You have unit-tests source code and assets that you don&#x27;t want to be included in your final build? Maven will handle that out-of-the-box-no-config needed.<p>While people might prefer to use &quot;one tool that does its jobs beautifully&#x2F;correctly&quot;, the reality is that you need at least 2 things to build the project: tool to manage your dependency and tool to build+package your project.