观察:
我正在测试Maven在使用mvn package
(或)mvn install
命令构建工件时如何检索工件。我注意到Maven每次都连接到Internet以获取依赖项。连续运行之间没有太多的时间差距(可能大约1或2分钟)。
问题:
因此,如果Maven每次默认连接到Internet(或我settings.xml
中提供的存储库),为什么它们都有一个可以强制更新的单独属性(-U
属性,如下所示:来自回购的快照的mvn install -U
?在连接到外部仓库或使用本地仓库检索依赖关系之间,决定/决定的因素是什么?
参考: (请参阅http://www.sonatype.com/node/158?file=books/maven-definitive-guide.pdf第93页以了解有关此属性的更多信息)。该参考文献仅解释了该属性,但其背后的管理原理未得到解释。
答案 0 :(得分:1)
我发现-U / - update-snapshots最好是一个有用的提示,在Maven2和Maven3中似乎有所不同。
即使有发布工件,maven3有时也需要它来更新特定版本和版本范围上的工件。其他时候,我的本地存储库会正确更新。去图。
你知道Maven在没有指定-U时检查/接收的工件是什么吗?我想,但尚未确认,Maven正在检查/下载插件,这些插件可能与POM中的依赖项有不同的规则。
真正说服Maven不在本地回购之外检查的唯一方法是使用-O / - 离线,然后它会使用你拥有的任何东西。