通过内部Nexus代理所有maven依赖存储库

时间:2011-11-14 08:21:15

标签: maven repository nexus

我有一个很多依赖项目的项目到很多远程存储库中,甚至那些依赖项有时也需要其他远程存储库。

我想创建一个稳定的构建环境,我希望我的本地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作为新的代理存储库,然后将新的代理存储库添加到公共组

1 个答案:

答案 0 :(得分:2)

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