代码之家  ›  专栏  ›  技术社区  ›  TheLQ

管理maven依赖关系-新版本和非Repo库

  •  1
  • TheLQ  · 技术社区  · 16 年前

    :我刚刚学习了Maven,所以提到的东西可能是错误的,或者不是最佳实践。

    我有一个中等规模的开源项目,我正在从basic迁移到Maven

    我对maven存储库的另一个问题是,它们的版本非常落后。例如Logback就是 0.9.18 in mvnbrowser 0.9.24 officially . 皮尔科特是 1.4.6 in mvnbrowser 1.5.0 officially . 为什么会有这么老的版本?

    Easier Java Persistence .

    1. 如何强制所有依赖项来自 /lib 例如
    2. 如果依赖项站点/svn repo也使用Maven,是否有一种直接从它们获取最新版本的自动方法?IE库,如commons lang或logback
    3. 有没有更好的方法来管理依赖关系((常春藤或一些奇怪的POM选项我错过了)

    如果它能与NetBeans附带的Maven捆绑版本一起工作,就可以获得额外的积分。

    2 回复  |  直到 9 年前
        1
  •  3
  •   Community Mohan Dere    9 年前

    这不是我要找的。我想保留SVN中的所有依赖项,原因有很多(…)

    我会回来讨论这个问题,但是我在 Maven: add a dependency to a jar by relative path 基于文件 存储库)允许实现这样的解决方案。

    我对maven存储库的另一个问题是,它们的版本非常落后。例如,在mvnbrowser中,Logback是0.9.18,但是官方是0.9.24。在mvnbrowser中,PircBot是1.4.6,但是官方是1.5.0。为什么会有这么老的版本?

    mvnbrowser 指数是 (正在制作) 无用的 maven central repository 有吗 logback-core-0.9.24.jar (logback项目正在做一些必须要做的事情来实现这一点)但是只有一个旧的 pircbot-1.4.2.jar . 为什么?问问皮尔科特队。总之,你说得对,中央存储库可能并不总是有最终版本。

    是的,这种情况也会发生。

    如前所述,您应该仔细阅读中建议的解决方案 Maven:通过相对路径向jar添加依赖项 本地仓库 基于文件 存储库(因此可以存储在SVN中)。您可能没有抓住要点,这符合您的用例。同时检查 Brett's answer

    另一方面,mvn能否直接从库的SVN repo构建?只是好奇

    没有得到那个。你能澄清一下吗?

    如果依赖项站点/svn repo也使用Maven,是否有一种直接从它们获取最新版本的自动方法?IE库,如commons lang或logback

    Maven支架 version ranges 您可以使用允许使用“大于X的任何版本”的语法。但我知道 不是 为了构建的可再现性,建议使用版本范围。你不希望构建突然失败,因为一些自动更新发生在你的背上。只有在需要修复错误或新功能时才进行升级,但必须明确执行( ).

    你可能还会发现 mentions LATEST RELEASE 版本标记。我也不推荐他们,因为和上面一样的原因,从那以后就更少了 they're removed from Maven 3.x .

    有没有更好的方法来管理依赖关系((常春藤或一些奇怪的POM选项我错过了)

    不能说是艾薇。但是在Maven领域,如果您不能为您的项目(Nexus、Archiva、Artifactory)建立一个“公司”存储库,那么基于文件的存储库是最好的方法。

        2
  •  0
  •   David A.    16 年前