Welcome to Apache Maven
Apache Maven is a software project management and comprehension tool. Based on the concept of a project object model (POM), Maven can manage a project’s build, reporting and documentation from a central piece of information.
If you think that Maven could help your project, you can find out more information in the «About Maven» section of the navigation. This includes an in-depth description of what Maven is and a list of some of its main features.
This site is separated into the following sections, depending on how you’d like to use Maven:
Use | Download, Install, Configure, Run Maven | Maven Plugins and Maven Extensions |
---|---|---|
Information for those needing to build a project that uses Maven | Lists of plugins and extensions to help with your builds. | |
Extend | Write Maven Plugins | Improve the Maven Central Repository |
Information for developers writing Maven plugins. | Information for those who may or may not use Maven, but are interested in getting project metadata into the central repository. | |
Contribute | Help Maven | Develop Maven |
Information if you’d like to get involved. Maven is an open source community and welcomes contributions. | Information for those who are currently Maven developers, or who are interested in contributing to the Maven project itself. |
Each guide is divided into a number of trails to get you started on a particular topic, and includes a reference area and a «cookbook» of common examples.
You can access the guides at any time from the left navigation. If you are looking for a quick reference, you can use the documentation index.
How to Get Support
Support for Maven is available in a variety of different forms.
To get started, search the documentation, issue management system, the wiki or the mailing list archives to see if the problem has been solved or reported before.
If the problem has not been reported before, the recommended way to get help is to subscribe to the Maven Users Mailing list. Many other users and Maven developers will answer your questions there, and the answer will be archived for others in the future.
You can also reach the Maven developers on Slack.
Apache Software Foundation
Maven is a part of the Apache Software Foundation. We’d like to thank the sponsors that provide financial assistance to the foundation. For more information on how you can support the foundation, see the sponsorship page.
You can also attend Apache Events. Don’t hesitate to ask on the Maven User mailing list if Maven team members will be there. It can be a great opportunity to meet them.
Maven java что такое
- Apache /
- Maven /
- Introduction
- | Last Published: 2023-07-19
- | Get Sources
- Download
Introduction
Maven, a Yiddish word meaning accumulator of knowledge, began as an attempt to simplify the build processes in the Jakarta Turbine project. There were several projects, each with their own Ant build files, that were all slightly different. JARs were checked into CVS. We wanted a standard way to build the projects, a clear definition of what the project consisted of, an easy way to publish project information, and a way to share JARs across several projects.
The result is a tool that can now be used for building and managing any Java-based project. We hope that we have created something that will make the day-to-day work of Java developers easier and generally help with the comprehension of any Java-based project.
Maven’s Objectives
Maven’s primary goal is to allow a developer to comprehend the complete state of a development effort in the shortest period of time. In order to attain this goal, Maven deals with several areas of concern:
- Making the build process easy
- Providing a uniform build system
- Providing quality project information
- Encouraging better development practices
Making the build process easy
While using Maven doesn’t eliminate the need to know about the underlying mechanisms, Maven does shield developers from many details.
Providing a uniform build system
Maven builds a project using its project object model (POM) and a set of plugins. Once you familiarize yourself with one Maven project, you know how all Maven projects build. This saves time when navigating many projects.
Providing quality project information
Maven provides useful project information that is in part taken from your POM and in part generated from your project’s sources. For example, Maven can provide:
- Change log created directly from source control
- Cross referenced sources
- Mailing lists managed by the project
- Dependencies used by the project
- Unit test reports including coverage
Third party code analysis products also provide Maven plugins that add their reports to the standard information given by Maven.
Providing guidelines for best practices development
Maven aims to gather current principles for best practices development and make it easy to guide a project in that direction.
For example, specification, execution, and reporting of unit tests are part of the normal build cycle using Maven. Current unit testing best practices were used as guidelines:
- Keeping test source code in a separate, but parallel source tree
- Using test case naming conventions to locate and execute tests
- Having test cases setup their environment instead of customizing the build for test preparation
Maven also assists in project workflow such as release and issue management.
Maven also suggests some guidelines on how to layout your project’s directory structure. Once you learn the layout, you can easily navigate other projects that use Maven.
While Maven takes an opinionated approach to project layout, some projects may not fit with this structure for historical reasons. While Maven is designed to be flexible to the needs of different projects, it cannot cater to every situation without compromising its objectives.
If your project has an unusual build structure that cannot be reorganized, you may have to forgo some features or the use of Maven altogether.
What is Maven Not?
You might have heard some of the following things about Maven:
- Maven is a site and documentation tool
- Maven extends Ant to let you download dependencies
- Maven is a set of reusable Ant scriptlets
While Maven does these things, as you can read above in the “What is Maven?” section, these are not the only features Maven has, and its objectives are quite different.