Apache Maven Review
June 17, 2016
Apache Maven Review
Score 5 out of 10
Overall Satisfaction with Apache Maven
Maven is often used in our Tech Dev department in a variety of Java projects to help speed up the process of dependency configurations and project packaging.
- Facilitates build processes: through the use of POM files and plugins, this feature helps developers focus less on the tedious mechanical details of project implementation.
- Well organized: users are able to locate their project information easily, whether it's dependencies, test reports, etc.
- Catalyzes process for making updates and migrations: minimal time is needed for users to make changes to their project based on new installations, etc.
- Compilation errors can be a bit extensive
- Difficulty in maintaining jars in repository for large projects
- Certain Maven conventions are set in stone, causing inflexibility (one artifact per project, etc.)
- Positive Impact: development onboarding time was cut significantly when incorporating Maven into our middleware application. New developers could compile, package, and deploy projects.
Ant, Maven's opposing framework, is often a point of comparison. Although Ant does not require formal conventions, it is procedural in the sense that you must tell Ant exactly what to do and when. It also lacks a lifecycle, along with goal definition and dependencies. Maven, on the other hand, requires less work as it knows exactly where your source code is as long as the pom.xml file is generated.
Maven most likely works best for a single application, rather than a large scale project that requires development that is widely distributed or is heavily dependent on other projects. It may also be less appropriate for those who need their application to be integrated quickly. There is a steep learning curve for Maven: command line, IDE, build phases, packaging types, etc. For certain teams of developers, Maven is great as it provides proper structure and conventions to make everyone be on the same page.