【问题标题】:How to release only a part of the artifacts in Nexus Staging repository如何仅发布 Nexus Staging 存储库中的部分工件
【发布时间】: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 发布插件会推送这两个文件。

标签: repository release nexus staging


【解决方案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”将工件交付到各自的存储库。

这些构建步骤在同一个签出工作副本上执行,因此我得到所有构建工件的相同修订。

【讨论】:

    猜你喜欢
    • 2015-03-07
    • 2017-09-08
    • 1970-01-01
    • 1970-01-01
    • 2019-11-22
    • 1970-01-01
    • 2013-12-21
    • 1970-01-01
    • 2021-12-11
    相关资源
    最近更新 更多