7

我管理许多 Maven 项目。它们中的大多数部署到我们内部的 Maven 存储库。现在我想开始向 Maven Central 发布一个项目。到目前为止,我有一个父 POM,它指定了我们内部存储库的 distributionManagement。将此信息部署到 Maven Central 是没有意义的。

我应该如何为我的内部项目指定分发管理?我应该为内部项目有一个单独的父 pom group-internal 吗?

Sonatype 提到了一种直接部署到他们的存储库的方法,但他们建议使用他们自己的父 pom (oss-parent)。查看使用 mvnrepository.org 的项目,我找不到任何以 oss-parent 作为父级的项目。大多数项目是否手动将其工件部署到 Sonatype?他们首先在哪里以及如何部署它们?

这么多的问题!我很惊讶这是多么复杂……

更新:事实证明,我确定的一些项目确实使用了 oss-parent。它只是隐藏的,因为它是父母的父母。

4

2 回答 2

9

完成所有设置后,您可以将分阶段发布SNAPSHOT直接部署到 Sonatype 的 OSS 存储库。然后可以通过 Sonatype 的 Nexus UI 发布Stages 版本。

要为您可以部署的应用程序创建一个存储库文件夹,您需要在他们的 JIRA 上打开一张带有 Sonatype 的票证以及对您将部署的开源项目的引用。这个过程非常顺利,如果您不提供所有必要的信息,Sonatype 会为您提供帮助。

乍一看,看起来很多项目都没有 oss-parent 作为父级,但当您向上导航 POM 树时,它们通常会这样做。例如,Google Guava 有 parent guava-parent,它有 parent oss-parent。一旦您的项目具有oss-parent并且配置了存储库,您就可以使用mvn deploy或轻松部署 SNAPSHOT 和版本mvn release:prepare release:perform

这似乎势不可挡,但如果您只是第一次完成这些步骤,就很容易理解。

于 2012-05-07T17:49:50.627 回答
6

我建议阅读的第一个内容如下: https://docs.sonatype.org/display/Repository/Sonatype+OSS+Maven+Repository+Usage+Guide OSS 父级在特殊情况下是有意义的。这取决于你喜欢分发什么样的项目。

更新:那个链接现在已经死了。在此处查找有关部署到 Sonatype 的帮助。

更新:对于 Maven 中央检查:http ://central.sonatype.org/

于 2012-04-20T13:57:53.217 回答