Maven <mirror> 标签,external:* 参数的含义
Maven <mirror> tag, meaning of external:* parameter
<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>
官方文档,关于<mirrorOf>
标签中external:*
参数的含义,是这样说的:
matches all repositories except those using localhost or file based
repositories. This is used in conjunction with a repository manager
when you want to exclude redirecting repositories that are defined for
Integration Testing.
在此背景下,我的问题是:
- 存储库使用本地主机是什么意思?
- 存储库基于文件是什么意思?
- What does it mean that a repository uses 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
。例如,如果您在同一台机器上托管了工件管理器,并且您在本地工作(因此不需要代理),情况可能就是这样。
- What does it mean that repository is file-based?
存储库 URL 的协议是 file
。例如,一个存储库 URL 被声明为:
<repository>
<id>my-repo</id>
<url>file:///C:\my-repo</url>
</repository>
将是一个基于文件的存储库。将在文件夹 C:\my-repo
中搜索工件,就像它是一个普通的远程存储库一样。如果您想为测试目的设置远程存储库(即没有工件管理器,仅使用文件夹,可能在另一个驱动器上),这将很有用。这种情况也不需要代理,external:*
不考虑
作为参考,external:*
的代码执行 exactly those checks。
<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>
官方文档,关于<mirrorOf>
标签中external:*
参数的含义,是这样说的:
matches all repositories except those using localhost or file based repositories. This is used in conjunction with a repository manager when you want to exclude redirecting repositories that are defined for Integration Testing.
在此背景下,我的问题是:
- 存储库使用本地主机是什么意思?
- 存储库基于文件是什么意思?
- What does it mean that a repository uses 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
。例如,如果您在同一台机器上托管了工件管理器,并且您在本地工作(因此不需要代理),情况可能就是这样。
- What does it mean that repository is file-based?
存储库 URL 的协议是 file
。例如,一个存储库 URL 被声明为:
<repository>
<id>my-repo</id>
<url>file:///C:\my-repo</url>
</repository>
将是一个基于文件的存储库。将在文件夹 C:\my-repo
中搜索工件,就像它是一个普通的远程存储库一样。如果您想为测试目的设置远程存储库(即没有工件管理器,仅使用文件夹,可能在另一个驱动器上),这将很有用。这种情况也不需要代理,external:*
不考虑
作为参考,external:*
的代码执行 exactly those checks。