Maven <mirror>标记,外部:*参数的含义

时间:2016-12-20 14:36:37

标签: maven repository maven-2 maven-3 mirroring

<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或基于文件的存储库之外的所有存储库   库。它与存储库管理器一起使用   当您要排除重定向的定义的存储库时   集成测试。

在这种情况下,我的问题是:

  • 存储库使用localhost是什么意思?
  • 存储库是基于文件的是什么意思?

1 个答案:

答案 0 :(得分:1)

  
      
  • 存储库使用localhost是什么意思?
  •   

只是在任何存储库声明中使用的URL的主机不是localhost127.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

相关问题