Maven - 从不按GroupID更新快照

时间:2014-04-10 11:51:09

标签: maven

如何防止Maven更新特定组的SNAPSHOT依赖关系?

我依赖于一个坚持每日更新1.0-SNAPSHOT的库,但每隔几个月才发布一次。我需要从最近制作的每日SNAPSHOT版本进行更改,但是我已经厌倦了这个框架的开发人员引入了重大变化。因此,除非我特别说明,否则我想告诉Maven永远不要更新此组中的任何内容。

有什么想法吗?我能想到的唯一另一种方法是分割回购,将POM编辑为我自己的版本号,然后依赖于它。

3 个答案:

答案 0 :(得分:2)

使用快照时,总会发生这种情况。但是,您可以在本地存储库中安装具有特定版本号的所需版本,然后使用您的版本。类似的东西:

<dependency>
   <groupId>my.group</groupId>
   <artifactId>my.artifact</artifactId>
   <version>1.2-TEMPVERSION</version>
</dependency>

这是一种解决方法,不应该像这样进入生产。

答案 1 :(得分:0)

假设您使用maven 3,您可以使用时间戳快照,即将依赖项替换为其带时间戳的版本。类似的东西:

<dependency>
   <groupId>my.group</groupId>
   <artifactId>my.artifact</artifactId>
   <version>1.2-20140401.124312.1</version>
</dependency>

您还可以使用[versions-maven-plugin] [1]自动将SNAPSHOT依赖项转换为其相应的带时间戳的版本(&#34;锁定版本&#34;):

mvn versions:lock-snapshots -Dincludes=my.group:my.artifact:jar::1.2-SNAPSHOT

当然,如果您的存储库管理器在一段时间后抛出旧的SNAPSHOTS,当所需的SNAPSHOT不再在您的本地存储库中时,这可能会停止工作。

答案 2 :(得分:0)

我认为将快照的更新策略设置为page.9999 = USER page.9999 { userFunc = LUFI\Extkey\AdditionalHeaders->addHeaders } 可以解决此问题;参见here

喜欢

never

尚未(成功)尝试过。但是我遇到了同样的问题,这是我尝试解决的问题。