我有用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
答案 0 :(得分:0)
如果代码更改需要版本,请自行编写代码库版本,尽管它很麻烦,但可以提供版本控制的想法。
如果必须自动更新快照,请使用
mvn -u clean install
添加后,此命令行arg强制Maven检查远程存储库中的所有快照,并更新本地存储库(如果它已过期)。