【问题标题】:Proxy all maven dependency repositories through internal Nexus通过内部 Nexus 代理所有 maven 依赖库
【发布时间】:2011-12-28 11:13:43
【问题描述】:

我有一个项目,它对许多远程存储库有很多依赖项,甚至这些依赖项有时也需要其他远程存储库。

我想创建一个稳定的构建环境,并且我希望我的本地 Nexus 安装能够代理项目的所有要求,这样我就可以在设置完所有内容后无需上网即可重现构建。

即,我的.m2/settings.xml 将包含:

<mirrors>
    <mirror>
        <id>my.public</id>
        <url>http://localhost:8081/nexus/content/groups/public</url>
        <mirrorOf>*</mirrorOf>
    </mirror>
</mirrors>

但这当然还不够。 Nexus 不会任意代理它从我的 maven 安装中获得的每个请求。

目前据我了解,这就是我的工作方式,对于我遇到的每个远程存储库,我都会在 Nexus 中创建一个代理并将其添加到公共组。

在我的情况下,这些就像 15 或 20 个远程存储库。它们中的大多数都进一步依赖于我的包,即 在我运行 maven 构建并点击它们之前我并不明显需要它们。到目前为止,我发现它们主要在父 POM 中被引用。

我的问题:有没有办法以某种方式配置 Nexus,所以我不需要手动添加每个存储库?

当我重新阅读我的问题时,听起来我几乎想要一个真正的 HTTP 代理,但 Nexus 的意义何在?当然这是一个修辞问题,但是如何在不手动添加所有这些问题的情况下解决这个问题?

我在 Nexus 文档中找到的都是http://www.sonatype.com/books/nexus-book/reference/config-sect-custom.html

...您可能会遇到无法从本地 Nexus 安装中检索工件的项目

...将此存储库作为新的代理存储库添加到 Nexus,然后将新的代理存储库添加到公共组

【问题讨论】:

    标签: maven repository nexus


    【解决方案1】:

    我不知道。出于这个原因,我们目前通过我们的 Nexus 安装镜像了 30-40 个存储库。我们在 settings.xml 中使用类似的镜像语句来强制每个人将我们的 repo 用作一站式商店。但是,我们确实(通过策略)强制开发人员不要将存储库添加到项目中的 pom 文件中。相反,他们提交了添加代理的请求。

    【讨论】:

      【解决方案2】:

      您可以在 Maven settings.xml 中定义一个镜像,在 mirrorOf 元素中使用通配符:

          <settings>
            ...
            <mirrors>
              <mirror>
                <id>internal-repository</id>
                <name>Repository name</name>
                <url>http://repo.mycompany.com/proxy</url>
                <mirrorOf>*</mirrorOf>
              </mirror>
            </mirrors>
            ...
          </settings>
      

      镜像随后将用于所有存储库请求。 Maven 文档指出:

      此设置在使用公司内部存储库时最有用 使用 Maven 存储库管理器来代理外部请求。

      并补充:

      存储库必须包含所有所需的工件,或者能够 将请求代理到其他存储库。

      这在https://maven.apache.org/guides/mini/guide-mirror-settings.html 中有记录(请参阅“使用单个存储库”部分)

      【讨论】:

      • 谢谢,我猜;即使已经晚了 10 年而且我不再使用 Java 了?
      • 好吧,它可能对其他人有用。如果您正在搜索“代理”设置,则设置的名称(“镜像”)并不明显。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-18
      • 2014-06-23
      • 1970-01-01
      相关资源
      最近更新 更多