当我从另一台计算机复制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服务器上,无法从目标系统访问。)
答案 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>