【问题标题】:Can maven-release-plugin check for SNAPSHOT versions in artifacts downloaded via maven-dependency-plugin?maven-release-plugin 可以检查通过 maven-dependency-plugin 下载的工件中的 SNAPSHOT 版本吗?
【发布时间】:2014-11-10 21:18:15
【问题描述】:

我们有一个项目 A,它从另一个项目 B 下载一个工件,对它执行一个操作,然后吐出一个新的工件。我们使用 maven-dependency-plugin 中的 'dependency:copy' 目标从我们的 Maven 存储库中获取此项目 B 工件。

当我们执行 Maven 发布时,我希望 maven-release-plugin 的 'release:prepare' 目标检查所有依赖项,如果找到任何 SNAPSHOT 版本则失败。这适用于我们<dependencies><dependency>...</dependency></dependencies> 标签下的正常依赖项,但不适用于 maven-dependency-plugin 复制的工件“依赖项”。

我如何(如果有的话)将这些复制的工件的版本公开给 maven-release-plugin 的准备测试,并确保我们永远不会构建包含项目 B 快照的项目 A 版本?

如果上下文有帮助,这里是我们 pom 中 maven-dependency-plugin 设置的简化版本:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-dependency-plugin</artifactId>
    <version>2.8</version>
    <executions>
        <execution>
            <id>copy</id>
            <phase>process-sources</phase>
            <goals>
                <goal>copy</goal>
            </goals>
            <configuration>
                <artifactItems>
                    <artifactItem>
                        <groupId>${ProjectBGroupID}</groupId>
                        <artifactId>${ProjectB}</artifactId>
                        <version>${ProjectBVersion}</version>
                    </artifactItem>
                </artifactItems>
            </configuration>
        </execution>
    </executions>
</plugin>

【问题讨论】:

    标签: maven maven-release-plugin maven-dependency-plugin


    【解决方案1】:

    添加对我自己的问题的答案,我发现我们可以通过在项目 A 的 pom.xml 中包含一个额外的 &lt;dependency&gt;...&lt;/dependency&gt; 元素(指项目 B)来向 maven-release-plugin 公开版本号。如果我们尝试使用快照发布,这会导致失败,但它也会将项目 B 暴露给项目 A 的类路径。我们可以通过包含“test”的&lt;scope&gt; 来稍微限制这一点(这使得 B 的类不属于 A 的二进制文件),但这仍然会使 A 的单元测试受到 B 的“污染”。

    我希望这里有人有一个更好的解决方案,它不会实际上将项目 B 添加到项目 A 的类路径(任何部分)中。

    【讨论】:

    • 我也在使用这个解决方案和额外的 。其他区别是我使用的是复制依赖目标。所以复制目标不会有明确的版本。不过仍在寻找更好的答案。
    猜你喜欢
    • 2014-03-10
    • 1970-01-01
    • 2013-01-26
    • 1970-01-01
    • 2012-02-02
    • 2023-03-18
    • 2016-09-24
    • 2021-04-08
    • 1970-01-01
    相关资源
    最近更新 更多