假设我有一个具有以下POM的项目:

<groupId>com.mine</groupId>
<artifactId>coreJar</artifactId>
<packaging>jar</packaging>
<version>0.0.1-SNAPSHOT</version>

然后在另一个项目中,我总是要引用最新的SNAPSHOT:
<dependencies>
    <dependency>
        <groupId>com.mine</groupId>
        <artifactId>coreJar</artifactId>
        <version>0.0.1-SNAPSHOT</version>
    </dependency>
    ...
<dependencies>

但是我希望它不总是0.0.1-SNAPSHOT,而是要始终获取最新的SNAPSHOT版本。过去,您可以使用LATEST,但是此后已被弃用(出于合理的原因)。

我确实了解you can specify versions,例如:
[1.5,)

但是我永远无法使它与“-SNAPSHOT”一起使用:
[0.0.1,)-SNAPSHOT // Doesn't work!

然后的问题是,我如何让Maven在另一个项目中获取最新的SNAPSHOT?

最佳答案

关于依赖性范围和SNAPSHOT依赖性的几句话(引用Dependency Mediation and Conflict Resolution设计文档):



因此,要回答您的问题,使用具有依赖性范围的SNAPSHOT的唯一方法是作为边界,并且您不会通过设计自动获得更高的SNAPSHOT版本(实际上是有意义的)。

就个人而言,我不喜欢使用依赖范围,因为我发现它会导致构建的可再现性问题并使构建更加脆弱。我不推荐他们。

以防万一,升级SNAPSHOT版本通常意味着您要发布一些代码,而maven release插件对此提供了支持(请参阅Updating POM Versions)。

关于maven-2 - Maven自动SNAPSHOT更新,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2358965/

10-12 00:35
查看更多