我们有多个maven项目,具体取决于我们自己的公共库。
当我们升级库时,快速找出哪些项目依赖于库(并且可能需要使用新版本)会很有用
显然,我可以手动查看所有pom文件或编写脚本来执行此操作,但这不太理想。
是否有任何提供此功能的工具。例如一个哈德森插件,Nexus,神器等?
编辑:
一些澄清:
我不想一次升级所有项目。回归测试和发布工作使得这不切实际且通常是不必要的(即使使用自动化测试和发布)。我只想要一份报告向我展示可能需要升级图书馆的项目......
许多答案都围绕着项目本身标记使用的版本。理想情况下,解决方案可以工作,以便对于给定的库我可以问这是什么用途。这看起来就像下面的Nexus问题所说的那样。
Hudson与自动下游maven构建类似。我可能会考虑用hudson插件扩展它。
答案 0 :(得分:3)
我知道虽然是管理poms和jar的好工具,Artifactory没有你要问的这样的功能:(
您可能想要查看此StackOverflow问题:Look for new versions of dependencies
或者,您可以查看Versions Maven Plugin。除此之外,它还允许您扫描项目的依赖项,并生成具有更新版本的依赖项的报告。
答案 1 :(得分:1)
一种很常见的做法是在父模块的dependencyManagemen
t中声明所有版本并引用依赖关系,而不是其他地方的版本。在这种情况下,您只需要更新一个POM。
答案 2 :(得分:0)
不完全符合您的要求,但Dependency Convergence report可能会有所帮助。 Here are some examples。
更新:我知道我并没有完全按照我的建议回答这个问题,但是从另一个方面来做(找到所有引用给定工件的项目)需要收集所有的POM所有项目,我都不知道当前提供引用的功能的解决方案(公司存储库将是实现此功能的完美候选者)。
答案 3 :(得分:0)
我通过使用依赖版本范围自动获取最新版本来解决此问题。
<dependency>
<groupId>foo.xyzzy</groupId>
<artifactId>bar</artifactId>
<version>[1.0.0,2.0.0)</version>
</dependency>
使用[1.0,)
等版本范围来包含1.0之后的最新版本可能是有意义的。
使这项工作的诀窍是让dev和prod配置文件包含和排除公共的快照存储库,并在重新构建依赖项时使用hudson自动构建项目。
答案 4 :(得分:0)
我的搜索结束了:http://www.sonarsource.org/sonar-2-1-in-screenshots/
Sonar现在提供此功能。