【问题标题】:Publish only certain artifacts from one big project仅发布来自一个大项目的某些工件
【发布时间】:2019-11-07 21:21:10
【问题描述】:

我在 azure-devops 中设置了 maven 存储库,我可以在其中发布工件。我只想发布我无法实现的大型项目中的某些工件

我在 pom.xml 中使用这个 xml sn-p 来发布包

<repositories>
    <repository>
        <id>msazure-visualstudio-com-msazure-sampleid</id>
        <url>https://msazure.pkgs.visualstudio.com/_packaging/sampleid/maven/v1</url>
        <releases>
            <enabled>true</enabled>
        </releases>
        <snapshots>
            <enabled>true</enabled>
        </snapshots>
    </repository>
</repositories>
<distributionManagement>
    <repository>
        <id>msazure-visualstudio-com-msazure-sampleid</id>
        <url>https://msazure.pkgs.visualstudio.com/_packaging/sampleid/maven/v1</url>
        <releases>
            <enabled>true</enabled>
        </releases>
        <snapshots>
            <enabled>true</enabled>
        </snapshots>
    </repository>
</distributionManagement>

例如:

我有父项目 P 和一级子项目 c1、c2、c3

c2 和 c3 依赖于 c1 只需要发布 c2 和 c1,不需要发布 c3

当我尝试在 c2 中使用 c1 工件时,它也需要可用的父工件,所以我也发布了 P

但是当我这样做时,更改会传播到所有子项目,并且 c3 也会被发布,这是我不想要的

我可以将 c3 放入单独的项目中并将所有内容发布在 P:P、c1 和 c2 中,但有没有其他方法可以在不分离项目的情况下做到这一点?

谢谢

【问题讨论】:

    标签: maven intellij-idea azure-devops repository pom.xml


    【解决方案1】:

    我会尝试在项目 c3 的 maven 部署插件中设置 &lt;skip&gt;true&lt;/skip&gt;

    【讨论】:

    • 我是 Maven 新手。我在我的任何项目中都没有看到 maven deploy 插件。到目前为止,我们从未运行过 deploy,我们只运行过 mvn install。基本上,我们总是直接从本地存储库引用文件,从不发布任何东西。你能举一个我必须放在P、c1和c3中的maven插件的例子吗?
    • 在您的问题中“仅发布某些工件”是什么意思?你不是要打电话给mvn deploy吗?
    • 仅发布某些工件:我的意思是说,我不想发布所有工件,而只想发布一些其他人使用的工件。这也是我试图在我的示例中解释的内容。是的,我们在根文件夹中有一个 cmd,它将调用 mvn deploy
    • 您需要按照mincong-h.github.io/2018/08/04/maven-deploy-artifacts-to-nexus 中的说明添加maven deploy 插件配置,然后您需要将skip 属性添加到您不想部署的模块中。
    猜你喜欢
    • 2020-09-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-06
    • 2013-02-10
    • 2019-04-26
    • 2015-09-24
    相关资源
    最近更新 更多