如何轻松区分两个Maven pom文件之间的依赖关系?

Jas*_*son 5 pom.xml maven

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

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

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

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

像这样的东西存在吗?

Sid*_*agi 6

Maven plugin - version,可能会救你。

mvn versions:compare-dependencies -DremotePom=my.group:other-project:1.0-SNAPSHOT
Run Code Online (Sandbox Code Playgroud)

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

   mvn versions:compare-dependencies -DremotePom=my.group:other-project:1.0-SNAPSHOT | grep '\->' | sort | uniq
Run Code Online (Sandbox Code Playgroud)

希望你觉得它有用。


Mar*_*nen 5

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

#!/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 
Run Code Online (Sandbox Code Playgroud)