<settings>
...
<mirrors>
<mirror>
<id>internal-repository</id>
<name>Maven Repository Manager running on repo.mycompany.com</name>
<url>http://repo.mycompany.com/proxy</url>
<mirrorOf>external:*</mirrorOf>
</mirror>
</mirrors>
...
</settings>关于external:*参数在<mirrorOf>标记中的含义的官方文档指出:
匹配所有存储库,但使用本地主机或基于文件的存储库的存储库除外。当您想要排除为Integration定义的重定向存储库时,这将与存储库管理器一起使用。
在这方面,我的问题是:
发布于 2016-12-20 14:49:46
简单地说,在任何存储库声明中使用的URL的主机不是localhost或127.0.0.1。例如,其URL声明为:
<repository>
<id>my-repo</id>
<url>http://localhost:8080/repo</url> <!-- or http://127.0.0.1:8080/repo -->
</repository>它不会被external:*镜像考虑,因为它的主机是localhost。例如,如果您的工件管理器驻留在同一台机器上,并且您在本地工作(因此不需要代理),情况可能就是这样。
存储库的URL的协议是file。例如,其URL声明为:
<repository>
<id>my-repo</id>
<url>file:///C:\my-repo</url>
</repository>将是一个基于文件的存储库。工件将在文件夹C:\my-repo中进行搜索,就像通常的远程存储库一样。如果您想为测试目的设置一个远程存储库(即没有工件管理器,只处理文件夹,可能是在另一个驱动器上),这是非常有用的。在这种情况下,也不需要代理,external:*也不会考虑代理。
作为参考,external:*的代码执行正是那些支票。
https://stackoverflow.com/questions/41244789
复制相似问题