代码之家  ›  专栏  ›  技术社区  ›  Christopher Klewes

如果依赖项是唯一的快照版本,并且调用install,那么maven会选择什么?

  •  3
  • Christopher Klewes  · 技术社区  · 14 年前

    framework-core 版本中的项目 1.1.0 并且有几个快照构建。另一个是 example-business 对具有以下依赖关系的项目 框架核心

    <dependency>
      <groupId>org.example</groupId>
      <artifactId>framework-core</artifactId>
      <version>1.1.0-20100518.134928-9</version>
    </dependency>
    

    如果 mvn install 是在 ? 我发现工件被复制到文件夹中,并被命名为 *.1.1.0-SNAPSHOT.jar (如预期)。

    这导致我假设这个版本只在 1.1.0-SNAPSHOT

    要测试本地内容而不将其部署到maven存储库:调用 根项目上进行构建 1.1.0-快照 --刚刚安装的工件被使用了吗?或者是否可以覆盖特定的构建(使用 install

    1 回复  |  直到 14 年前
        1
  •  8
  •   akokskis    9 年前

    时间戳版本 -SNAPSHOT -就像 -20100518.134928-9 在这种情况下-你 并明确告诉Maven使用 此版本 . 即使一个新的 如果是build,依赖关系将不会得到更新,这就是“锁定快照”的意义所在。

    如果你想用最新的 ,在-SNAPSHOT版本上声明依赖项以解锁依赖项:

    <dependency>
      <groupId>org.example</groupId>
      <artifactId>framework-core</artifactId>
      <version>1.1.0-SNAPSHOT</version>
    </dependency>
    

    手动更改并不是什么大事,但是 Versions Maven plugin 在某些情况下可能会有所帮助: