繁体   English   中英

Maven SNAPSHOT被认为是RELEASE

[英]Maven SNAPSHOT are taken into account as RELEASE

我有用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每次都安装SNAPSHOT而不是第一次像RELEASE一样?

编辑已解决

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

谢谢@VinayVeluri

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

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

mvn -u clean install

添加后,此命令行arg强制Maven检查远程存储库中的所有快照,并在其过期时更新本地存储库。

资源

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM