【问题标题】:Maven version control configurationMaven版本控制配置
【发布时间】:2017-07-21 07:09:02
【问题描述】:

我的版本如下:1.0.0-9、1.0.0-10、1.0.0-11、1.0.0-12 等

我已将依赖项配置为: [1.0.0,)

这意味着它应该使用现有版本中的最新版本(ofc 以 1.0.0 开头),但不是使用 1.0.0-12,而是使用 1.0.0-9。我认为这是因为 9 比 1 更重要。

首先,我想强制 maven 真正使用我的最新版本。

我还可以有 1.0.0-LOCAL 构建(这是开发人员 PC 上的本地构建)。如果可用,我想强制 maven 使用 1.0.0-LOCAL 而不是任何其他构建。

我不知道我该如何做这些,也许不知何故使用位于构建机器和开发人员 PC 上的 settings.xml 配置文件。

如果我有其他方法可以做到这一点,请告诉我。

祝你有美好的一天, 阿诺德·罗伯特·图尔丁

更新: 原来Maven Version Range - downloads all the available versions not just the latest one是原来的问题。

【问题讨论】:

    标签: java maven build


    【解决方案1】:

    您使用哪个 Maven 版本?从 Maven 的角度来看,所有这些给定的版本都是发行版吗?问题是使用 SNAPSHOT 版本不是更好吗?

    此外,要检查工件的顺序是否正确或是否像您期望的那样工作,可以使用以下方法进行检查:

    java -jar apache-maven-3.3.9\lib\maven-artifact-3.3.9.jar 1.0.0-12 1.0.0-9
    

    显示 Maven 解析的参数(以规范形式)和比较结果:

    1. 1.0.0-12 == 1-12
       1.0.0-12 > 1.0.0-9
    2. 1.0.0-9 == 1-9
    

    正确显示1.0.0-12 大于1.0.0-9。所以问题也是如果您使用的是存储库管理器等?你只做 mvn install 吗?

    我不明白你关于 `1.0.0-LOCAL' 的说法?

    除此之外,我建议不要使用版本范围,因为它们会使您构建不可重现。

    【讨论】:

    【解决方案2】:

    在 Maven 中,依赖层次非常重要。确保您没有之前添加到其他 pom 中的其他依赖项。

    (在层次结构中,maven 关心最新的依赖项。)。依赖 1.0.0-LOCAL 必须是最新的。

    我建议你,虽然本地开发时使用泛型-SNAPSHOT,但在开始打包时使用数字。

    【讨论】:

    • Maven 不关心最新的依赖项(如果您使用它们,取决于您的版本范围如何)它会选择最近的依赖项并且将采用该版本...特别是如果您考虑具有多个级别的依赖树...
    猜你喜欢
    • 1970-01-01
    • 2012-05-17
    • 2014-07-08
    • 1970-01-01
    • 2012-05-04
    • 1970-01-01
    • 1970-01-01
    • 2011-03-28
    • 2016-09-29
    相关资源
    最近更新 更多