Maven本地镜像
问题描述:
我在本地运行JFrog's Artifactory,在此处我将工件上传到默认的libs-snapshot-local
存储库。还配置为使用JCenter作为远程存储库。
Maven是配置了以下的settings.xml:Maven本地镜像
<settings>
<mirrors>
<mirror>
<id>jcenter</id>
<name>jcenter</name>
<url>http://172.18.0.1:8081/artifactory/jcenter</url>
<mirrorOf>*,!libs-snapshot-local</mirrorOf>
</mirror>
<mirror>
<id>libs-snapshot-local</id>
<name>libs-snapshot-local</name>
<url>http://172.18.0.1:8081/artifactory/libs-snapshot-local</url>
<mirrorOf>libs-snapshot-local</mirrorOf>
</mirror>
</mirrors>
<profiles>
<profile>
<repositories>
<repository>
<id>jcenter</id>
<name>jcenter</name>
<url>http://172.18.0.1:8081/artifactory/jcenter</url>
<snapshots><enabled>false</enabled></snapshots>
</repository>
<repository>
<id>libs-snapshot-local</id>
<name>libs-snapshot-local</name>
<url>http://172.18.0.1:8081/artifactory/libs-snapshot-local</url>
<snapshots><enabled>true</enabled></snapshots>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>jcenter</id>
<name>jcenter</name>
<url>http://172.18.0.1:8081/artifactory/jcenter</url>
<snapshots><enabled>false</enabled></snapshots>
</pluginRepository>
<pluginRepository>
<id>libs-snapshot-local</id>
<name>libs-snapshot-local</name>
<url>http://172.18.0.1:8081/artifactory/libs-snapshot-local</url>
<snapshots><enabled>true</enabled></snapshots>
</pluginRepository>
</pluginRepositories>
</profile>
</profiles>
</settings>
当我运行编译过程不幸的Maven似乎从JCenter拉的一切:偶数虽然这神器,根据
[INFO] Downloading: http://172.18.0.1:8081/artifactory/jcenter/org/apache/maven/plugins/maven-javadoc-plugin/2.10.4/maven-javadoc-plugin-2.10.4.jar
Artifactory,在libs-snapshot-local
之内。
它怎么没有先使用本地的,有没有办法解决这个问题?
答
我不完全清楚你想要达到的目标。
通常,您不会在settings.xml中设置两个镜像,而是使用您在Artifactory中定义的存储库组(也称为虚拟存储库)。在此组中,您可以设置存储库的顺序,以便首先询问您最喜欢的存储库。通常情况下,首先放置“本地”存储库,然后放置“远程”存储库(我使用的是Nexus,所以我无法告诉你在Artifactory中如何设置)。尽管如此,如果你不遵循这个建议,Artifactory会缓存已经被请求的工件(并且你的Maven当然也会在你的计算机上缓存工件),这并没有太大的危害。
原因是因为当我在Artifactory中使用虚拟存储库时,它似乎甚至会缓存所有内容 - 尽管它对于远程存储库是关闭的。这是我根本不想要的,因为我正在使用它来做一些我明确测试所需时间的东西。另一种选择是使用多个Artifactory实例,但确实会给系统带来沉重的负担。我会尝试将其他默认存储库链接到libs-snapshot-local,并查看是否会更改某些内容。 – Hering
为什么要测试工件下载需要多长时间? –
Artifactory中的缓存或存储库管理器中的缓存是有意的,并且是其中的基础概念之一?你想解决什么样的问题? – khmarbaise