会说话的那个,会说话的那个!

会说话的那个,会说话的那个!

在博客中"为什么在POMs中放置存储库是一个坏主意, Sonatype“要求”开源社区正确管理他们的Maven2 POM文件。这是一个很好的很重要的请求,因为Maven无法正常工作:

  • 随着时间的推移(由于URL的变化)
  • 在一个封闭的环境中(不能直接从计算机访问Internet)开发人员机)
  • 因为它会使你选择的存储库管理器(Nexus,Archiva,或Artifactory)来解决依赖关系—这是最重要的。

我们几乎每个使用Maven的客户都面临这个问题,而且他们中的大多数都在使用懒惰且肮脏的解决方案“mirrorOf”。在博客中有人认为,将所有Maven请求镜像到一个URL是一个好主意:我们知道这是一个坏主意,因为它完全剥夺了隔离发布、快照和插件的源的控制权!

在那里然而,博客中关于来自开源项目的POM文件的一个戏剧性的句子(它实际上适用于每个人):
“你定义的条目将会是永远燃烧进入你发布的pom。”
听起来好像Maven被设计坏了,而且永远坏了,因为所有坏的POM文件都已经存在了。

因为我们支持我们的客户,他们正在遭受不受他们控制的行为,我们决定解决这个问题。

在Artifactory的最新版本(2.1.3)中,现在有一个新功能自动清除在pom中声明的远程存储库。
您现在可以配置任何虚拟存储库,以自动清除POM文件中声明的恶意远程存储库。

默认情况下,Artifactory将为在项目POM实体下直接声明的存储库和插件存储库执行该操作,或者在一个默认活动配置文件中声明。您可以强制执行更深层的清理,以删除所有内容存储库以及所有概要文件中的插件存储库声明。

使用Artifactory作为存储库管理器意味着您永远不会得到永远燃烧的问题,这是由一些不错的、流行的开源项目的POM文件中出现的无心错误造成的。

“会说话的那个,会说话的那个!”