7

我的老板喜欢按照范围、组和工件 ID 对给定 Maven pom 文件中的依赖项进行排序。

我最近继承了相当数量的项目,其中有相当数量的未排序的依赖项。所以我对它们进行了分类。

长话短说,我想确保我没有无意中删除依赖项或将错误排序的依赖项复制到错误的 pom.xml 中。

所以我想知道是否有某种机制或 Maven 报告插件可以将 pom 与以前的版本进行比较,并向我展示添加或修改了哪些依赖项。

这样的事情存在吗?

4

4 回答 4

12

我喜欢使用一个简单的脚本来获取排序的依赖项列表,然后将它们与 meld 之类的 difftool 进行比较。

#!/bin/bash
# first grab all dependencies
mvn dependency:resolve >/dev/null

# then list them with -o to keep noise low,
# remove extra information and duplicates
mvn -o dependency:list \
| grep ":.*:.*:.*" \
| cut -d] -f2- \
| sed 's/:[a-z]*$//g' \
| sort -u 
于 2016-07-19T14:18:55.063 回答
6

Maven 插件 -版本,可能会拯救你。

mvn versions:compare-dependencies -DremotePom=my.group:other-project:1.0-SNAPSHOT

我喜欢通过过滤、排序和打印嵌套多个模块的唯一差异来简化。为此,请使用:

   mvn versions:compare-dependencies -DremotePom=my.group:other-project:1.0-SNAPSHOT | grep '\->' | sort | uniq

希望你觉得它有用。

于 2017-01-19T05:15:15.833 回答
2

在 Maven 中解决依赖问题的最佳方法是以下命令

mvn dependency:tree
于 2013-03-29T19:50:19.487 回答
2

我发现(对我来说)最简单的方法是使用 eclipse 'Effective POM' 视图。

这是怎么做的

  1. 在eclipse中打开第一个pom。
  2. 单击该 pom 的“依赖层次结构”选项卡。
  3. 在eclipse中打开第二个pop。
  4. 单击该 pom 的“依赖层次结构”选项卡。
  5. 将第二个 pom 窗口拖出 eclipse 以创建第二个 eclipse 窗口,以便您可以并排查看 pom 依赖项。

希望这可以帮助 :)

于 2015-11-07T01:52:06.150 回答