Apache 软件基金会父 POM

该项目由一个 POM 组成,其中包含可能对使用 Maven 3 构建和发布代码的任何 Apache 项目有用的设置(自版本 17 起不再支持 Maven 2.x)。通过将此项目用作父项目,项目将获得这些设置。

大多数项目都希望覆盖其中的一些设置。

以下是此 POM 中配置的项目列表:

  • 顶级项目属性:
    • 许可证:Apache 许可证,2.0 版。
    • 组织:Apache 软件基金会
    • 网址https ://www.apache.org/ 。你应该覆盖它。
    • repositories:pom 添加 Apache 快照存储库 ( https://repository.apache.org/snapshots )
    • distributionManagement:POM 设置发布到 https://repository.apache.org/service/local/staging/deploy/maven2 的 Apache Nexus 实例和https://repository.apache.org/content/repositories/快照快照。请注意,您可以覆盖 POM 参数(distMgmtSnapshotsNamedistMgmtSnapshotsUrl)以更改快照位置。
    • mailingLists:POM 设置通用 Apache 公告列表。你应该覆盖它。
  • pluginManagement:插件管理部分指定插件列表的版本。有关版本的完整列表,请参阅插件管理报告
    • 编译器插件默认设置为Java 1.7和 UTF-8 源代码。
    • jar 插件设置为添加默认规范和实现条目。
    • 资源插件设置为 UTF-8。
    • 发布插件通过 <arguments> 配置元素设置,为所有执行启用apache-release配置文件并禁用 <useReleaseProfiles>。您可以在发布插件的配置中使用一个空的 <arguments/> 元素来删除它。
  • plugins: plugins 部分配置两个执行:
  • Reproducible Builds:从这个父 POM 的版本 22 开始,托管插件版本预计将与Reproducible Builds兼容。

    要在输出存档中选择时间戳,使用此 POM 作为父级的项目应在其根 POM 中定义一个属性:

      <properties>
        <project.build.outputTimestamp>2019-10-02T08:04:00Z</project.build.outputTimestamp>
      </properties>

    该值将在发布期间由 Maven 发布插件更新。如果项目想要禁用 Reproducible Builds,只需使用任何单个字符定义属性值。

apache-release配置文件

如上所述,此 pom 配置发布插件以启用发布插件的所有执行的apache-release配置文件。

该配置文件包括以下插件:

  • maven-assembly-plugin: org.apache.apache.resources:apache-source-release-assembly-descriptor:1.0.6添加为依赖项,并使用source-release-assembly id 配置执行。
    该插件被配置为从sourceReleaseAssemblyDescriptor属性中获取一个descriptorRef名称,默认情况下设置为source-release (仅限zip):您可以使用source-release-zip-tar(zip和tar)或source-覆盖该属性释放焦油(仅限焦油)值。如果您想避免此默认程序集执行以提供您自己的机制来生成源发布存档,您可以通过配置禁用执行
    此source-release-assembly执行 ID的skipAssembly参数
  • maven-deploy-plugin:配置为激活updateReleaseInfo
  • maven-source-plugin:配置为构建和附加源 jar。
  • maven-javadoc-plugin:配置为构建和附加一个 javadoc jar。
  • maven-gpg-plugin:配置为对所有内容进行签名。它希望在${gpg.passphrase}中找到密码,大概在您的settings.xml 中
  • checksum-maven-plugin:配置为根据Apache 发布分发策略的要求为源发布创建校验和文件。

当使用 maven-release-plugin 进行发布时,这会在target/checkout/target中创建文件,准备好复制到项目的Apache /dist/发布分发目录:

  • ${artifactId}-${version}-source-release.[zip|tar.gz]:源发布存档
  • ${artifactId}-${version}-source-release.[zip|tar.gz].sha512:它们的校验和
  • ${artifactId}-${version}-source-release.[zip|tar.gz].asc:他们的签名

设置配置

您可以查看 Apache 网站Publishing Maven Artifacts中的页面。

您可以在命令行中使用-Papache-release测试您的环境设置。

历史

版本 发布日期
23差异 2020-01-25
22差异 2020-01-08
21差异 2018-08-21
20差异 2018-07-07
19差异 2018-01-24
18差异 2016-05-18
17差异 2015-04-24
16差异 2014-11-13
15差异 2014-09-24
14差异 2014-03-06
13差异 2013-01-20
12差异 2012-11-01
11差异 2012-08-08
10差异 2011-08-09
9差异 2011-02-15
8差异 2010-11-26
7差异 2009-12-29