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

jca*_*ell 10 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.
Run Code Online (Sandbox Code Playgroud)

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

Ste*_*stl 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>
Run Code Online (Sandbox Code Playgroud)

  • 谢谢!你对需要相同ID的评论做到了.我不认为存储库名称是重要的,因为Jars在那里并且它处于离线模式.对于阅读此内容的其他人,请注意远程存储库名称位于工件的本地存储库文件夹中的_remote.repositories文件中.这显然需要匹配settings.xml中的存储库. (2认同)