<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>
参数含义的官方文档说明:
匹配除使用localhost或基于文件的存储库之外的所有存储库 库。它与存储库管理器一起使用 当您要排除重定向的定义的存储库时 集成测试。
在这种情况下,我的问题是:
答案 0 :(得分:1)
- 存储库使用localhost是什么意思?
只是在任何存储库声明中使用的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:*
的代码执行exactly those checks。