如何仅发布 Nexus Staging 存储库中的部分工件
Posted
技术标签:
【中文标题】如何仅发布 Nexus Staging 存储库中的部分工件【英文标题】:How to release only a part of the artifacts in Nexus Staging repository 【发布时间】:2013-05-19 15:51:12 【问题描述】:有没有办法只从 Nexus 临时存储库中发布一些工件?
我正在使用 Maven 发布插件将工件推送到 Nexus pro 临时存储库。 然后 QA 团队接管,完成后我从 Web 界面发布暂存存储库。
QA 团队正在从暂存存储库中获取 jar,他们需要用于测试的源 jar。
当我将内容从登台发布到发布存储库时,我不想发布源 jar。
有没有办法只发布 Nexus 临时存储库中的部分项目?
现在我在升级后从发布存储库中手动删除源 jar。 我有几次差点错过,差点删除了错误的文件……
Nexus pro 对 Nexus pro 功能的任何帮助都会非常棒!
谢谢, 埃亚尔
【问题讨论】:
您可以创建两个临时存储库,一个用于工件,另一个用于源。另一种选择是将源代码和二进制文件放在 Nexus 中,并有选择地反映您希望在发布后向客户公开的内容。 这听起来是个不错的解决方案。我正在使用 Maven 发布插件将工件推送到 Nexus。是否可以一次运行将部署“拆分”为两个暂存存储库?我需要具有相同修订号的 jar 和源。 (即不重新构建代码) 使用 Maven 发布插件可能会很棘手。通常源是附加到同一个 Maven 模块的附加工件,因此 Maven 发布插件会推送这两个文件。 【参考方案1】:我最终使用 Maven 配置文件运行了两个不同的构建。
<profiles>
<profile>
<id>release</id>
<properties>
<release-repository-id>RELEASES</release-repository-id>
<release-repository--url>nexus-server/nexus/service/local/staging/deploy/maven2/</release-repository--url>
</properties>
</profile>
<profile>
<id>internal</id>
<properties>
<release-repository-id>INTERNAL</release-repository-id>
<release-repository--url>nexus-server/nexus/content/repositories/INTERNAL</release-repository--url>
</properties>
</profile>
</profiles>
然后我在分发管理部分使用了这些属性
<distributionManagement>
<repository>
<id>$release-repository-id</id>
<url>$release-repository--url</url>
</repository>
</distributionManagement>
以这种方式,运行“mvn release:prepare -Prelease”和“mvn release:prepare -Pinternal”将工件交付到各自的存储库。
这些构建步骤在同一个签出工作副本上执行,因此我得到所有构建工件的相同修订。
【讨论】:
以上是关于如何仅发布 Nexus Staging 存储库中的部分工件的主要内容,如果未能解决你的问题,请参考以下文章