如何解决如何强制Maven每天更新依赖项的版本?
| 我们正在使用Maven 2.2.1,并对事情的进展感到非常满意。 最近,我们开始使用依赖版本范围如下: <dependency>
<!-- com.google.inject.Guice -->
<groupId>com.google.inject</groupId>
<artifactId>guice</artifactId>
<version>[3,4)</version>
</dependency>
但是现在我面临一个问题,Maven在每个构建中都检查每个此类依赖项的新版本,这使构建速度非常缓慢:
[INFO] artifact com.google.inject:guice: checking for updates from internal
[INFO] artifact com.google.inject:guice: checking for updates from central
这是我的存储库声明的样子:
<repositories>
<repository>
<id>internal</id>
<url>http://internal.repo.local/nexus/content/repositories/releases</url>
</repository>
</repositories>
据我了解,我已经检查了存储库的配置,查看了<repository/>
部分的默认值和父POM继承。
我已经尝试过更改updatePolicy
并没有成功。看起来所有策略仅在“ 5”级管理下都有效,并且被版本检查忽略。
我找到了-o
命令行选项的解决方法,但是...我想至少有时要检查外部版本,并且不建议创建每天更新本地存储库的基于cron
的Maven计划,这是一个合适的解决方案。
解决方法
首先,正如先前的评论者所说,您的构建无法通过构建范围进行复制……这就是Maven的重点。希望您理解这一点的重要性,所以我将回答您的问题。
只需设置存储库的更新策略:
<存储库>
<存储库>
内部 id>
http://internal.repo.local/nexus/content/repositories/releases url>
<版本>
true enabled>
始终 updatePolicy>
releases>
<快照>
true enabled>
始终 updatePolicy>
snapshots>
repository>
repositories>
编辑:抱歉,我回答了原始问题。
回答此问题的最佳方法是弄清楚为什么Maven每天都会更新。这可能是由于您的远程依赖关系引起的,或者可能是Maven中的错误。我会让你做这件事的脚步...
我认为您实际上想要达到的目标是:“每次进行构建并放慢速度时,我如何避免让Maven逃到中央?”我在海外工作,互联网时遇到了这个确切的问题连接非常慢。我们设置了一个代理服务器,我不得不想出一种方法来强制所有查找都命中该代理服务器。
将更改为适合您的需求。除非您有更多特定需求,否则Daily可能会起作用。
接下来,编辑您的settings.xml并添加以下部分:
activeProfiles>
<镜子>
<镜子>
内部镜像 id>
http://internal.repo.local/nexus/content/repositories/releases url>
* mirrorOf>
mirror>
mirrors>
settings>
这将迫使所有依赖项查找通过您的内部关系实例,到达关系缓存,并极大地加快了构建速度。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。