代码之家  ›  专栏  ›  技术社区  ›  Justin

如何防止Maven检查外部存储库?

  •  6
  • Justin  · 技术社区  · 14 年前

    当我使用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(家长)
      • XML
      • 岩芯
        • XML
      • 红豆草
        • XML
    3 回复  |  直到 13 年前
        1
  •  7
  •   Pascal Thivent    14 年前

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

    <repositories>
      <repository>
        <id>java.net</id>
        <url>http://download.java.net/maven/2</url>
        <snapshots>
          <enabled>false</enabled>
        </snapshots>
      </repository>
      ...
    </repositories> 
    
        2
  •  9
  •   Colin Hebert    13 年前

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

    我不认为您可以基于每个依赖项来指定它。

        3
  •  1
  •   Colin Hebert    14 年前

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

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

    如果您想在脱机模式下工作,您可以使用“-o”选项在MVN命令上设置一个临时脱机选项,也可以使用“~/.m2/settings.xml”设置该选项。 <offline>true</offline> .


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


    资源: