【问题标题】:Maven Versioning Submodules DependenciesMaven 版本控制子模块依赖项
【发布时间】:2013-08-01 18:44:45
【问题描述】:

我们运行多个站点并使用 Maven 构建它们的代码。

每个站点都有自己的 pom.xml,有几个有子模块。

站点 B 依赖于站点 A 的子模块。

站点 B 在 .m2/repository 中找到此依赖项。

目前,站点 B 的 pom.xml 指定了依赖名称和版本。

我们想知道如何在我们的开发和发布过程中处理子模块的版本控制,以及与一个依赖于另一个站点 B 对站点 A 的子模块的站点相关的站点。

对于主站点,我们应该为每个快照和发布增加子模块的版本(保持所有内容都具有相同的版本号),还是仅在子模块更改时更改子模块版本?

除了传达新版本,编辑站点 B 的 pom.xml,更新依赖版本,告诉站点 B 有新版本的子模块要查找之外,还有其他方法吗?

我们尝试从站点 B pom.xml 中的依赖项规范中删除该版本,但随后发现它查找的依赖项/子模块与站点 B 的代码具有相同的版本。

我猜我们可以在 Jenkins 中设置一些东西,以便在版本更改时更新 pom.xml 依赖项......但也许有更好的方法?

我刚看到这个,很有帮助(例如“发布”和“最新”)...

How do I tell Maven to use the latest version of a dependency?

【问题讨论】:

  • 版本范围会按照链接中的说明为您做吗?

标签: maven dependencies versioning


【解决方案1】:

如果您阅读链接的整个问答,您会发现 LATEST 和 RELEASE 可能存在很多问题,其中第一个问题是 Maven 3 不再支持它们。给出的答案提到了 versions-maven-pluginmaven-scm-plugin,如果你想要的话,它们可能对自动更新有用。

如果你只是想知道什么时候发生了变化,版本插件有报告你可以作为site阶段的一部分运行来产生你想要的信息,然后你可以在合适的时候更新依赖关系。

<reporting>
    <plugins>
        <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>versions-maven-plugin</artifactId>
            <version>1.3.1</version>
            <reportSets>
                <reportSet>
                    <reports>
                        <report>dependency-updates-report</report>
                        <report>plugin-updates-report</report>
                        <report>property-updates-report</report>
                    </reports>
                </reportSet>
            </reportSets>
        </plugin>
    </plugins>
</reporting>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-09-09
    • 2021-09-12
    • 1970-01-01
    • 2017-01-30
    • 2016-01-10
    • 2011-06-25
    • 2016-09-18
    • 1970-01-01
    相关资源
    最近更新 更多