gpt4 book ai didi

maven - Maven settings.xml 文件中的镜像是什么?

转载 作者:行者123 更新时间:2023-12-03 13:28:18 25 4
gpt4 key购买 nike

如果我错了,请纠正我,但 Mirror 用于将所有流量重定向到特定的存储库 URL 并阻止其他所有内容(包括 Maven 中央存储库)。

现在如果我有一个镜像到 http://a.com:8081和一个存储库到 http://b.com:8081 .第二个 URL 会被使用吗?我假设答案是否定的。你可以有多个镜子吗?

最佳答案

Correct me if I'm wrong, but a Mirror is used to redirect all traffic to a specific repository URL and block everything else (including Maven central repo).



这并不完全正确。 Maven 通过在定义的内部搜索来下载 Artifact repositories .这些存储库在项目的 POM 或 Maven 设置中定义。但是,正如 Mirror documentation 中指定的那样:

However, you may want to use an alternative mirror for a particular repository without changing the project files.



让我们从文档中获取示例并对其进行评论:
<mirrors>
<mirror>
<id>UK</id>
<name>UK Central</name>
<url>http://uk.maven.org/maven2</url>
<mirrorOf>central</mirrorOf>
</mirror>
</mirrors>

这定义了一个单一的镜像,当 Maven 想要从 Maven 中央存储库获取依赖项时将使用该镜像。假设您有 2 个当前存储库,它们是 Maven Central 和一个自定义存储库 A。会发生以下情况:
  • 您正在声明对 Artifact 的依赖;
  • Maven 将在您定义的存储库中查找该依赖项,因此它将在存储库 A 和 Maven Central 中查找它;
  • 假设它以 A 开头:它将访问为该存储库定义的 URL,就像您期望的那样。然后假设它没有在那里找到;
  • 然后它将查看 Maven Central 内部。但是,Maven 会注意到为该存储库配置了一个镜像。它不会在 repo1.maven.org 打到 Maven Central .相反,它将从 uk.maven.org 获取它。 ,这是在镜像配置元素中定义的 URL。

  • 如本例所示,镜像仅适用于使用 <mirrorOf> 定义的某些存储库。配置元素。在前面的例子中,我们有 <mirrorOf>central</mirrorOf>这意味着“镜像 Maven 中心”。此元素 can have various values ,以及文档 gives examples :

    Examples:

    • * = everything
    • external:* = everything not on the localhost and not file based.
    • repo,repo1 = repo or repo1
    • *,!repo1 = everything except repo1:


    Now what if I have a Mirror to http://a.com:8081 and a repository to http://b.com:8081. Would the second URL ever get used? I assume the answer is a No.



    以上表明,答案并非严格否定。镜子到 http://a.com:8081将在 Maven 尝试从它镜像的存储库之一获取依赖项时使用。如果它确实将存储库镜像到 http://b.com:8081那么永远不会向 http://b.com:8081 发出请求(他们将被重定向到 http://a.com:8081 );但如果没有,Maven 将继续从 http://b.com:8081 获取依赖项像往常一样。

    Can you have multiple Mirrors?



    是的你可以。

    关于maven - Maven settings.xml 文件中的镜像是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36757902/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com