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

如何找到在多个pom文件中使用库的位置

  •  4
  • Pablojim  · 技术社区  · 14 年前

    根据我们自己的公共库,我们有多个maven项目。

    当我们升级库时,快速找出哪些项目对库有依赖关系(可能需要使用新版本)会很有用。

    显然,我可以手动查找所有pom文件或编写脚本来完成这项工作,但这并不理想。

    是否有提供此功能的工具。例如哈德逊插件、Nexus、手工艺品等?

    编辑:

    一些澄清:

    我不想一次升级所有的项目。回归测试和发布工作使得这一点不切实际,而且常常是不必要的(即使是自动测试和发布)。我只想要一份报告,告诉我什么项目可能需要升级库…

    许多答案都是围绕着项目本身来标记所使用的版本。理想情况下,该解决方案可以工作,这样对于给定的库,我可以询问它的用途。这看起来像下面的nexus问题在讨论的内容。

    hudson在自动化的下游maven构建中做了类似的事情。我可能会考虑用hudson插件来扩展它。

    5 回复  |  直到 14 年前
        1
  •  3
  •   Community Egal    7 年前

    我知道虽然它是管理pom和jar的好工具, Artifactory 没有你要的功能:(

    您可能需要检查这个stackoverflow问题: Look for new versions of dependencies

    或者你可以检查一下 Versions Maven Plugin . 除此之外,它还允许您扫描项目的依赖项,并生成具有较新版本的依赖项的报告。

        2
  •  1
  •   lexicore    14 年前

    通常的做法是在 dependencyManagemen 父模块的t和引用依赖项,其他地方都没有版本。在这种情况下,您只需要更新一个pom。

        3
  •  0
  •   sal    14 年前

    我通过使用依赖版本范围自动获取最新版本来解决了这个问题。

      <dependency>
          <groupId>foo.xyzzy</groupId>
          <artifactId>bar</artifactId>
          <version>[1.0.0,2.0.0)</version>
      </dependency>
    

    使用诸如 [1.0,) 包含1.0之后的最新版本。

    实现这一点的诀窍是让dev和prod概要文件包含和排除共享空间的快照repo,并在重新构建依赖关系时使用hudson自动构建项目。

        4
  •  0
  •   Pascal Thivent    14 年前

    不完全是你要的,但是 Dependency Convergence report 可能会有帮助。 Here are some examples .

    更新: 我知道我并没有用我的建议准确地回答这个问题,但是用另一种方法(找到所有引用给定工件的项目)来回答这个问题需要收集所有项目的所有pom,我不知道解决方案。 目前 提供这样一个 引用人 特性(公司存储库将是实现这一点的最佳候选者)。

        5
  •  0
  •   Pablojim    14 年前

    我的搜索结束了: http://www.sonarsource.org/sonar-2-1-in-screenshots/

    声纳现在提供这个。