Maven

Apache Maven是一个软件项目管理和综合工具。 (Apache Maven is a software project management and comprehension tool. )

Github stars Tracking Chart

Apache Maven是一个软件项目管理和综合工具。 基于项目对象模型(POM)的概念,Maven可以从中央信息管理项目的构建,报告和文档。

Maven是一个意第绪语词汇,意思是知识的累加器,最初是为了简化雅加达涡轮项目的构建过程而开始的。 有几个项目每个都有自己的Ant构建文件,它们都略有不同,JAR被检入CVS。 开发者希望建立项目的标准方法,对项目组成的明确定义,简单的发布项目信息的方式以及跨多个项目共享JAR的方法。
结果是现在可以用于构建和管理任何基于Java的项目的工具。Maven开发团队希望他们创建的是一些可以使Java开发人员日常工作变得更简单,并且通常可以帮助理解任何基于Java的项目。
功能摘要(原文:http://maven.apache.org/maven-features.html
简而言之,以下是Maven的主要功能:
  • 简单的项目设置,遵循最佳实践 —— 在几秒钟内启动一个新的项目或模块;
  • 所有项目的一致使用 —— 意味着新开发人员进入项目的时间不会增加;
  • 优越的依赖关系管理包括自动更新,依赖关闭(也称为传递依赖关系);
  • 能够同时轻松处理多个项目;
  • 一个大型的、不断增长的库和元数据仓库,使用开箱即用,并与最大的开放源码项目进行安排,以实时发布最新版本;
  • 可扩展,能够轻松地使用Java或脚本语言编写插件;
  • 即时访问新功能,很少或没有额外的配置;
  • 在Maven之外的依赖关系管理和部署的Ant任务;
  • 基于模型的构建:Maven能够根据项目的元数据将任意数量的项目构建到预定义的输出类型(如JAR,WAR或分发)中,而无需在大多数情况下执行任何脚本。
  • 项目信息的相干站点:使用与构建过程相同的元数据,Maven可以生成一个网站或PDF,包括您需要添加的任何文档,并添加到有关项目开发状态的标准报告中。这个信息的例子可以在这个网站左侧的“项目信息”和“项目报告”子菜单的底部。
  • 发布管理和分发发布:无需额外的配置,Maven将与您的源代码管理系统(如Subversion或Git)集成,并根据某个标签管理项目的发布。它也可以将其发布到分发位置供其他项目使用。 Maven能够发布单个输出,例如JAR,包括其他依赖关系和文档的归档,或作为源分发。
  • 依赖管理:Maven鼓励使用JAR和其他依赖关系的中央存储库。 Maven提供了一个机制,您的项目的客户端可以使用它来从中央JAR存储库下载与Perl的CPAN类似的从项目构建所需的任何JAR。这允许Maven的用户在项目之间重用JAR,并鼓励项目之间的通信,以确保处理向后兼容性问题。

Main metrics

Overview
Name With Ownerapache/maven
Primary LanguageJava
Program languageShell (Language Count: 7)
PlatformBSD, Linux, Mac, Solaris, Windows
License:Apache License 2.0
所有者活动
Created At2009-05-21 03:22:03
Pushed At2025-05-03 21:16:05
Last Commit At2025-05-03 10:59:53
Release Count97
Last Release Namemaven-4.0.0-rc-3 (Posted on 2025-03-05 10:43:59)
First Release Namemaven-2.2.0 (Posted on 2009-07-09 20:43:51)
用户参与
Stargazers Count4.6k
Watchers Count225
Fork Count2.7k
Commits Count15.6k
Has Issues Enabled
Issues Count0
Issue Open Count0
Pull Requests Count1375
Pull Requests Open Count85
Pull Requests Close Count788
项目设置
Has Wiki Enabled
Is Archived
Is Fork
Is Locked
Is Mirror
Is Private

Apache Maven

Apache License, Version 2.0, January 2004
Maven Central
Jenkins Status
Jenkins tests

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 you have found a bug, please file an issue in the Maven Issue Tracker.

Documentation

More information can be found on Apache Maven Homepage.
Questions related to the usage of Maven should be posted on
the Maven User List.

Where can I get the latest release?

You can download release source from our download page.

Contributing

If you are interested in the development of Maven, please consult the
documentation first and afterwards you are welcome to join the developers
mailing list to ask question or discuss new ideas / features / bugs etc.

Take a look into the contribution guidelines.

License

This code is under the Apache License, Version 2.0, January 2004.

See the NOTICE file for required notices and attributions.

Donations

You like Apache Maven? Then donate back to the ASF to support the development.

Quick Build

If you want to bootstrap Maven, you'll need:

  • Java 1.8+
  • Maven 3.0.5 or later
  • Run Maven, specifying a location into which the completed Maven distro should be installed:
mvn -DdistributionTargetDir="$HOME/app/maven/apache-maven-3.7.x-SNAPSHOT" clean package