将Maven存储库复制到另一台计算机

时间:2015-07-20 19:00:03

标签: java maven

当我从另一台计算机复制Maven存储库时,是否需要刷新或删除某些索引或缓存?

我想从我的笔记本电脑复制本地Maven存储库,以便在另一台有效离线的计算机上使用。从~/.m2/repository复制文件后,它无法按预期工作。当我执行mvn package -o时,我收到一个错误,它找不到新存储库中的一个工件:

[ERROR] Failed to execute goal on project [...]: Could not resolve dependencies for project [...]: 
Cannot access central (https://repo.maven.apache.org/maven2) in offline mode and the artifact com.oracle:ojdbc6:jar:11.2.0.3.0 has not been downloaded from it before.

但我确实在~/.m2/repository/com/oracle/ojdbc6/11.2.0.3.0的文件夹中有从另一台计算机复制的工件。 (这个特定的一个不公开;它存储在我们公司的Nexus服务器上,无法从目标系统访问。)

1 个答案:

答案 0 :(得分:9)

Maven使用settings.xml文件中的“更新策略”来决定是下载工件还是使用本地存储库中的工件(如果可用)。

如果您不希望Maven更新您的依赖项,则应配置<updatePolicy>never</updatePolicy>。您还需要在两个位置使用相同的存储库<id>

因此,如果您只使用Maven的Central Repository,那么您的repository配置将如下所示:

<repository>
  <id>central</id>
  <name>Maven Central</name>
  <url>https://repo1.maven.org/maven2</url>
  <releases>
    <enabled>true</enabled>
    <updatePolicy>never</updatePolicy>
    <checksumPolicy>warn</checksumPolicy>
  </releases>
  <snapshots>
    <enabled>false</enabled>
  </snapshots>
</repository>