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

2023-12-22

想象一下两个项目。第一个是framework-core版本中的项目1.1.0并有几个快照版本。另一个是example-business项目具有以下依赖关系framework-core在构建迭代编号 9 上。

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

如果发生什么情况mvn install被称为framework-core?我发现该工件被复制到该文件夹​​并命名为*.1.1.0-SNAPSHOT.jar(如预期)。

这让我假设这个版本仅在以下情况下才使用1.1.0-SNAPSHOT版本被定义为依赖项,而不是精确的构建。

要测试本地内容而不将其部署到 Maven 存储库:调用mvn install,将依赖项更改为1.1.0-SNAPSHOT——并且使用了刚刚安装的神器?或者是否可以覆盖特定的构建(使用install生命周期阶段)?


当使用依赖项时时间戳版本 of a -SNAPSHOT - like -20100518.134928-9在这种情况下 - 你lock版本并明确告诉 Maven 使用这个版本。即使是新的-SNAPSHOT构建后,依赖项不会更新,这就是“锁定快照”的要点。

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

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

手动更改它并不是什么大问题,但以下目标Maven 插件版本 http://www.mojohaus.org/versions-maven-plugin/在某些情况下可能会有所帮助:

  • versions:lock-snapshots http://www.mojohaus.org/versions-maven-plugin/examples/lock-snapshots.html搜索 pom 中的所有内容 -SNAPSHOT 版本并将其替换为 当前时间戳版本 -快照,例如-20090327.172306-4
  • versions:unlock-snapshots http://www.mojohaus.org/versions-maven-plugin/examples/unlock-snapshots.html在 pom 中搜索所有时间戳 锁定快照版本并替换 他们与-SNAPSHOT。 版本:解锁快照
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如果依赖是唯一的快照版本并且调用了install,maven会选择什么? 的相关文章

随机推荐