Maven SNAPSHOT被认为是RELEASE

时间:2016-09-07 08:50:05

标签: java maven nexus snapshot

我有用maven编译的Java项目。每个项目都有自己的POM,如下所示:

<project ...>
    <groupId>group.id</groupId>
    <artifactId>scripts</artifactId>
    <version>1.0.1-SNAPSHOT</version>
    ...
    <dependencies>
          <dependency>
              <groupId>global</groupId>
              <artifactId>common</artifactId>
              <version>10.2.3-SNAPSHOT</version>
          </dependency>
    </dependencies>
    ...
</project>

SNAPSHOT作为发布

如果我执行mvn install,它将在我第一次执行命令时编译/安装它。 下次,它不会安装它。它认为maven认为它是 RELEASE ,它们是 SNAPSHOT 。 我可以在安装包中包含的时间戳中看到。如果我不更改版本号,时间戳也不会改变。

我相信我错过了maven配置,但这对我们的开发产生了很大的影响,因为我们强制要求为每个测试部署更改项目版本(及其依赖性)。

注意: 我正在使用maven 3.3.3。看起来我在3.1.0中没有这种行为(我不是100%肯定旧版本。无论如何都很老)。 Maven与Nexus配合使用。也许这个问题来自于它,我专注于错误的马。

感谢您的提示。

编辑: 问题是 : 我怎样才能让maven每次都安装SNAPSHOTs而不是第一次像RELEASE那样安装?

编辑已解决

我们总是mvn install来编译和安装源代码。出于某种原因,我们没有使用mvn clean命令。 重新编译所有源的正确maven命令是mvn clean install

谢谢@VinayVeluri

1 个答案:

答案 0 :(得分:0)

如果代码更改需要版本,请自行编写代码库版本,尽管它很麻烦,但可以提供版本控制的想法。

如果必须自动更新快照,请使用

mvn -u clean install

添加后,此命令行arg强制Maven检查远程存储库中的所有快照,并更新本地存储库(如果它已过期)。

source