如何防止maven检查外国存储库?

时间:2010-09-03 15:32:41

标签: maven-2

当我使用maven构建时,我看到它检查所有类型的外部存储库,以查找只有我的本地构建应该生成的工件。我怎么能告诉它com.myorg组只能在本地存储库中找到?基本上我想做m2eclipse在工作区分辨率上做的事情,但是在命令行上。

[INFO] snapshot com.myorg:core:0.0.1-SNAPSHOT: checking for updates from sun-jms
[INFO] snapshot com.myorg:core:0.0.1-SNAPSHOT: checking for updates from hibernate
[INFO] snapshot com.myorg:util:0.0.1-SNAPSHOT: checking for updates from sun-jms
[INFO] snapshot com.myorg:util:0.0.1-SNAPSHOT: checking for updates from hibernate
...

背景 我有一个分层的maven项目(一个级别)。我想做一个完整的构建,所以我去顶部做mvn clean install

  • com.myorg(parent)
    • 的pom.xml
    • com.myorg.core
      • pom.xml
    • com.myorg.util
      • 的pom.xml

3 个答案:

答案 0 :(得分:9)

您可以尝试将“-o”选项传递给Maven。 -o激活“离线模式”,其中Maven不查询远程存储库以检查更新或新工件。

我认为你不能在每个依赖的基础上指定它。

答案 1 :(得分:7)

如果您使用的远程存储库是发布存储库并且实际上不包含任何SNAPSHOT,则可以为它们禁用SNAPSHOT,并且Maven不会检查它们是否有SNAPSHOT更新。例如:

<repositories>
  <repository>
    <id>java.net</id>
    <url>http://download.java.net/maven/2</url>
    <snapshots>
      <enabled>false</enabled>
    </snapshots>
  </repository>
  ...
</repositories> 

答案 2 :(得分:1)

默认情况下,maven首先检查本地存储库中的依赖项,然后检查外部存储库中的依赖项。将maven检查外部存储库的唯一情况是使用快照。

如果您使用快照,则可以使用<updatePolicy>标记来更改何时检查外部存储库。

如果您想在离线模式下工作,可以使用“-o”选项在mvn命令上设置临时离线选项,也可以在“〜/ .m2 / settings.xml”中设置它。 <offline>true</offline>


在执行此操作之前,请记住在真正激活离线模式之前使用dependecy:go-offline mojo下载一次依赖项。


资源: