实际放置内部存储库URL的位置?

时间:2015-02-27 13:42:18

标签: maven repository continuous-integration maven-3 pom.xml

我看到了几个选项:

  • 直接在pom.xml
  • in super-pom
  • settings.xml(全局或用户)
  • 在个人资料中或直接(settings.xmlpom.xml

我们希望我们的Jenkins将工件推送到内部存储库,开发人员可以从那里获取缺失的工件。


如果我将存储库URL放在pom.xml中,稍后将内部存储库移动到不同的地址,则发布的版本都将断开链接。

Super-pom可以节省一些重复,但在干净的设置中,您需要知道存储库在哪里找到父POM - 告诉您存储库的位置。


在设置中使用URL可以在不修改工件的情况下更改它,但有两个问题:

    如果maven设置没有引用内部存储库,
  • 构建将因未解决的依赖关系而失败
  • 开发人员必须手动更新他们的settings.xml文件

我也不确定在配置文件中放置存储库配置的优点。我知道你可以轻松地打开和关闭存储库,但-o选项和快照解析设置不应该足以满足大多数用途吗?

如何使用不同的存储库(例如使用检测类)进行集成测试?

2 个答案:

答案 0 :(得分:1)

在用户${HOME}/.m2/settings.xml中配置single repository,并在相应的存储库管理器中配置其他所需的存储库Nexus,Artifactory或Archiva。在詹金斯,有Config File Provider plugin以一种非常方便的方式处理这种情况。

答案 1 :(得分:0)

  

如果您希望在内部拥有可重复的构建和对组织的良好控制,请使用存储库管理器并在每个人的settings.xml中使用mirrorOf条目指向该URL。

     

如果您正在公开您的来源,并希望让其他人更容易   构建,然后考虑添加存储库条目到您的POM,但不要   轻轻地选择一个URL,长期思考,并使用永远的URL   在你的控制之下。

http://blog.sonatype.com/2009/02/why-putting-repositories-in-your-poms-is-a-bad-idea/