如何避免maven从公共存储库请求私有工件?

时间:2012-06-06 13:13:50

标签: maven

我有一个pom文件,首先是我自己的存储库,然后是一组公共存储库(repo1,repo2,java.net等)。我们假设所有都是“发布”存储库。

我的问题是,maven向所有存储库发出请求,寻找我们的内部jar,要么第一次下载jar,要么验证metadata.xml,如果版本控制的范围是“(1.0.0,1.1) 0.0]”。

如何应用某种过滤器来表示类似groupID的内容foo.bar只属于存储库“foo”。

这个案例困扰我有两个原因:一个是将这些请求带入公共服务器是浪费带宽(当服务器很慢时,它只会减慢所有内容),其次是它暴露了我们的名字内部包进入外界的日志文件。

我不想部署本地代理或类似的东西,只是希望某个groupID(或列表)始终转到某个存储库。即使对于非私有工件,对于不在公共通用工具(repo.maven,download.java)上的此类工件,也有助于指定某个工件位于某个存储库上,从而避免这些冗余请求。 / p>

1 个答案:

答案 0 :(得分:2)

我们使用内部Nexus实例并在那里配置了这样的东西。 Nexus在Administration -> Routing选项中有groupId选项,您可以在其中为{{1}}定义掩码,然后指出应该使用哪些存储库。

当然,它需要内部Nexus成为开发人员使用的唯一存储库,然后配置任何外部存储库进行代理或镜像。