According to What is Maven the objectives are:
Can I just make a build script in bash instead?
What is the motivation of using a maven project? Is there any example?
Maven also does dependency management pretty well. This is one of the bigger selling points, but there are a lot more.
It also helps to enforce a standardized project structure. The beauty in that is that I can pick up any mavenized project and pretty much immediately know where all the various files are.
Maven also has a pretty extensive library of plugins that allow for quite a bit... from automating static code analysis (via pmd/findbugs/checkstyle, etc), calculating test coverage, generating javadocs, generating source jars, running a web app in Jetty, etc, etc.
I will tell you that it's not exactly an easy tool to learn, but if you do master it, you learn to appreciate all it can do. If you want me to go into specifics about anything in particular, let me know.
Maven is a tool that handles a lot of the boilerplate project setup and configuration for you. For example, if you wanted a Java project to properly integrate with a build server, provide code coverage information, and produce a jar file that can easily used in other projects around your organization - you could spend weeks setting this up manually using ANT, or you could just 'embrace' the Maven way of doing things.
In addition, you can setup archetypes (and many already exist) that are pre-configured projects for your desired setup. This can be a great way to enforce standards and increase productivity within an organization.
Maven does provide rules that are a bit rigid, but in the end it greatly cuts down on the time required to do many different tasks. I would recommend Maven: The Definitive Guide from O'Reilly as a resource to review.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With