Apache Maven
December 28, 2017

Apache Maven

Anonymous | TrustRadius Reviewer
Score 9 out of 10
Vetted Review
Verified User

Overall Satisfaction with Apache Maven

Apache Maven is used as a build tool in our organization. Maven along with Gradle are the 2 most used tools for building Java or Scala applications.
  • Maven is useful in building Java applications.
  • Quick project setup, no complicated build.xml files, just a POM and go. Reduces the size of source distributions, because jars can be pulled from a central location.
  • Maven provides a very rigid model that makes customization tedious and sometimes impossible. While this can make it easier to understand any given Maven build, as long as you don’t have any special requirements, it also makes it unsuitable for many automation problems.
  • Maven has few, built-in dependency scopes, which forces awkward module architectures in common scenarios like using test fixtures or code generation. There is no separation between unit and integration tests
  • Maven has been the only tool for building Java apps for a long time. And it being open source has helped maximize ROI.
  • I can't think of any negative. With Gradle coming up as a newer and better technology for building, some teams are shifting towards it.
Maven vs Gradle

  • Maven is much more mature vs Gradle and been around for a long time. Easy to get developers. Gradle is new but adoption is fast
  • In Maven dependency management does not handle conflicts well between different versions of the same library. Its better in Gradle.
  • Customization of targets (goals) is hard in Maven and simple in Gradle
  • By making it simple to manage multiple projects it promotes modular design of code.
  • It is easy to use modular code, but when the code is in separate compiling projects it is impossible to cross references between modules of code. Maven helps by enforcing modular design of code.
  • Dependency Management is very simple and clear.