【问题标题】:maven: automatic upgrade version in all dependent projectsmaven:所有依赖项目中的自动升级版本
【发布时间】:2011-09-28 03:29:43
【问题描述】:

在这个问题之前,我想描述一下我使用的方法。 我在版本控制文件夹下有很多项目,其中一些是多 Maven 项目,其中一些是独立包,其中一些是 Maven 插件或原型。所有 jar 都是快照(目前我们不能使用发布工件)。因此,例如应用程序 A1 依赖于包 B,它依赖于实用程序 C,另一个应用程序 A2 直接依赖于实用程序 C。当我更改 C 中的代码时,我需要更新它的版本,然后更新 B 和 A2,然后是 A1。每周更新一次所有这些 pom 真的很烦人。所以我正在寻找一些可以为我处理它的自动解决方案(比如如果 C 有新版本,所有依赖的模块都必须更新)。 有没有人有想法?

提前致谢

附:我想制作一个可以处理这个问题的 MOJO,但我遇到了一些困难,因为并非所有项目都有共同的父项目......

【问题讨论】:

    标签: plugins maven dependencies


    【解决方案1】:

    听起来像是版本插件可以处理的东西...http://mojohaus.org/versions-maven-plugin/

    【讨论】:

    【解决方案2】:

    这被认为是一种不好的做法,但如果您使用-DupdateReleaseInfo=true(或使用发布插件)部署项目,那么您可以将依赖版本设置为RELEASE

    <dependency>
        <groupId>some.groupid</groupId>
        <artifactId>some.artifactid</artifactId>
        <version>RELEASE</version>
    </dependency>
    

    您将始终获得最新的发布版本

    【讨论】:

    • 感谢您的回答,但目前我们根本无法使用release
    【解决方案3】:

    如果您只使用 SNAPSHOT-s,您总是可以选择基于父级的项目。在父级中定义版本并让子级扩展它。您还可以选择使用 RELEASE 或 LATEST 等版本。

    【讨论】:

      【解决方案4】:

      考虑使用持续集成引擎来监视所有项目并在更改时构建它们。

      如果您使用 Jenkins,您可以将其设置为将构建的 Maven 工件作为 Maven 存储库提供,然后您可以在自己的 Maven 配置中使用它。

      这应该足够了 - 快照机制处理其余部分。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2022-08-03
        • 2017-04-27
        • 2017-10-02
        • 2011-02-03
        • 1970-01-01
        • 2011-09-01
        • 2019-05-19
        • 1970-01-01
        相关资源
        最近更新 更多