TrustRadius Insights for Apache Maven are summaries of user sentiment data from TrustRadius reviews and, when necessary, third party data sources.
Pros
Simple Hierarchical Structure: Apache Maven offers a straightforward hierarchical structure for building and packing software artifacts, which has been positively mentioned by many users. This feature simplifies project organization and management effectively.
Different Configurations for Development and Production: Users have appreciated the ability of Apache Maven to support separate configurations for development and live production environments. This feature enables easy testing of applications and ensures reliable consistency throughout different stages of the project.
Easy Dependency Management: Multiple reviewers have highlighted the ease of adding and resolving dependencies in Apache Maven. This feature simplifies the process of managing external libraries and ensures that all required dependencies are included in the project.
We use Maven in our build pipeline to download and include correct versions of third-party dependencies in our application. The ability to keep track of indirect dependencies greatly simplifies the management of third-party libraries, which our application depends on. Maven is also used to apply custom build steps when building our application.
Pros
Dependency management.
The download of dependencies.
Build steps in different configurations.
Cons
Graphical user interface.
Searching dependencies.
Predefined build templates.
Likelihood to Recommend
Maven is great if you have an application with a lot of third-party dependencies and don’t want each developer to keep track of where the dependency can be downloaded. It’s also a great way to make it easy for a new developer to be able to build the application. It’s less suitable for simple projects without any third-party dependencies.
VU
Verified User
Engineer in Information Technology (1001-5000 employees)
We use Maven for our build artifacts. It is a part of the pipeline for getting our code built and running in production. This works as an important cog in the delivery of new functionality and code to production. It is reliable and one of the parts of our build infrastructure that we don't have to be concerned about.
Pros
Reliable
Consistency
Good for documentation.
Cons
I cannot think of anything to put here.
Likelihood to Recommend
Getting products built in an internal environment and out to the production environment. This is our most commonly used scenario. This might not be as useful as a solution if you are looking to architect a solution that requires lots of vendor support. This is a simple tool to use if you are willing to architect it yourself.
As a build tool, we are using Maven with our Java-based project to add the libraries and dependencies in the project. With the help of that, we need not explicitly download the various jar and put it into our project. This makes our project easy and manageable and also use a version of the project build using Maven.
Pros
Add and resolve dependencies
Create a single or multiple package for whole project code
Manage project versioning and metadata
Cons
All are fantastic, I have been using this from last 8 years
Likelihood to Recommend
A project that we want to manage via libraries. Import and export various libraries and classes from one project to another. Add and download the project dependencies. Project structure or folder hierarchy. Various goals and parameters for different types of builds. Everything gets handled using a simple POM.xml file.
Apache Maven is used as a build automation tool and it simplifies the projects build process, dependency, and documentation. Apache Maven is able to solve many problems as below: 1. Software versioning. 2. Dependency management like includes the jars and other dependencies. 3. It has been integrated with the git and Jenkins CICD pipeline for the automatic build.
Pros
Software versioning
CICD integration
Dependency management
Cons
How to use tutorials for beginners, learning curve should be easy
Sometime understanding the POM is diffecult
Only works with java
Likelihood to Recommend
We are using the java langauge to develop our application hence Apache Maven is one of the best suitable build tools available. Our use case has been Project and dependency management. Building the jar files Software versioning. Useful in maintaining consistency in the project.
Apache Maven is being used throughout the entire enterprise organization. It's our go-to system to perform builds for our applications. Apache Maven makes it easy for us to have a uniform build system for multiple different departments. It standardizes the build process to ensure the quality of our build process. This allows the developers to focus on the actual code, not the build process itself.
Pros
Makes the build process simple and easy to do.
It provides a standard build system that can be adopted by multiple, different groups within an organization.
It's extensible with easy to use custom extensions which our developers take full advantage of.
Cons
The documentation could be a bit more detailed.
Initial setup for us in our environment was a bit of challenge.
The learning curve for this product is pretty steep. Your developers will definitely need some sort of training to get started and integrating it.
Likelihood to Recommend
Apache Maven is well suited for an environment where you want an easy to use system that can be rolled out to multiple departments throughout the enterprise. Apache Maven is a good solution for those looking for a build process that can be customized as much as they require. This system will allow a consistent build process, but still be flexible enough for individual departments to customize a solution to meet their specific needs.
VU
Verified User
Professional in Information Technology (10,001+ employees)
It is being used across the whole organization as the dependency management solution for all Java Enterprise products. It is used in both standard Java maven projects (using pom.xml) and gradle-based projects. We use a mix of publicly-available dependency downloads (such as mvnrepository.com), as well as local nexus servers. One downside in such a mixed-repo environment would be switching between profiles (in local settings) between projects. Some projects involve a local nexus server of "approved" libraries, whereas others allow any publicly-available repo. Switching between the two can involve IDE restarts and other minor annoyances in developer workflow.
Pros
Better project build and task automation than ant or any other conventional Java build configuration manager.
Easy dependency management for all popular java libraries, with the ability to support arbitrary dependency repositories (Nexus, e.g).
Cons
Better IDE integration. Still too many manual workflows in Eclipse and IntelliJ.
Similar to above, easier project-specific configuration management. I'm not aware of an ability to control which repositories are used by which projects, without updating the main maven config.
Likelihood to Recommend
If you're building a Java Enterprise application, you should use Maven. I'm not actually sure what the alternative is. Manually downloading Jar's and adding them to your classpath? Putting them in your source control repo? Hand-rolling everything you need, including String manipulation functions? This is really the only modern solution to Java library dependency management, and whether you use pom.xml, or build.gradle or some other abstraction, this is the de-facto standard for Java dependency management.
Maven is used across the org to build JVM based applications as well as few non-JVM ones which utilize the exec and release plugins to adhere to semantic version requirements. It is mainly used to solve build dependencies between internal and external applications.
Pros
Build resolution.
Sometimes useful error messages.
Cons
Lots of static XML.
Copypasta.
Likelihood to Recommend
Builds JVM applications very well. Wouldn't recommend for other types of applications. Many useful plugins make sure applications build and run correctly, at the expense of overly verbose XML.
VU
Verified User
Consultant in Information Technology (51-200 employees)
At ARM marketing firm when we started working on our in-house custom-built applications and delivering web solutions to our clients, we decided to go with Java based web applications since our developers had the most experience in that domain. Apache Maven is an Open Source tool from the Apache Software Foundation that we use for building and packaging our applications.
Pros
Apache Maven uses a simple hierarchical structure for building and packing a software artifact.
Different configurations of the software can be used while working on the dev server as opposed to a live production environment. This makes testing the application very easy.
Cons
One of the issues with building software using Apache Maven is that its cache resolution is not optimal. It pulls down all the artifacts onto the developer's local machine and can sometimes result in conflicts.
The build process can vary in time and gets progressively longer as the project's complexity increases.
Likelihood to Recommend
In software development one of the major headaches for companies is managing third party libraries and dependencies. Apache Maven makes it a breeze on that front. We can lock in the specific versions of the libraries that we are currently using and can upgrade them at our own convenience.
It is very easy to understand. Being popular in the open source community, various open source projects can be built using Maven. We use Maven for developing in-house projects. All Java IDEs provide support for Maven and it's compatible with any Java IDE. Using Maven, one can reuse code and resources.
Pros
Reuse code and resources
Compatible with a wide range of Java IDEs
It helps to download resources over the network.
Cons
Configuration is written into XML which is cumbersome.
New versions of libraries are added daily, It is very difficult for Maven to keep track of the dependancies.
It's inflexible and overcomplicated.
Likelihood to Recommend
For small projects, Maven can identify unused and transitive dependencies. For large projects, as it contains a large number of XML files which makes it difficult to understand and maintain. Maven makes your project build on a network connection. Not enough documentation on the web for beginners. Debugging is not easy as it is difficult to find bugs in your code.
VU
Verified User
Engineer in Information Technology (11-50 employees)
At our university, we decided to purchase a new portal implementation to serve as the landing page for our students, faculty and staff members. We decided to go with a Liferay portal for that purpose. For building and packaging our applications we decided to use Open Source software Apache Maven. Maven is used throughout our development environment as the main packaging tool.
Pros
If you are building in the Java ecosystem, then Maven definitely has the biggest repository of artifacts needed for such projects.
It has a very simple to use extendable architecture. Everything is configurable through the Pom.xml file which is very simple to follow.
Cons
In our use of this software, we have found several issues with its dependency management system. Firstly due to its caching mechanism, it can sometimes show conflicts when building the project locally.
Adding and configuring the project to support manually added JAR files can be problematic. The error handling and reporting mechanism should be improved.
Likelihood to Recommend
Building and automating packaging of software can be a challenging task. As the complexity of the project grows so do the dependencies on third-party artifacts. Using Maven we can define and manage the project structure centrally and it helps improve overall build times.
VU
Verified User
Employee in Information Technology (5001-10,000 employees)