我的老板喜欢按照范围、组和工件 ID 对给定 Maven pom 文件中的依赖项进行排序。
我最近继承了相当数量的项目,其中有相当数量的未排序的依赖项。所以我对它们进行了分类。
长话短说,我想确保我没有无意中删除依赖项或将错误排序的依赖项复制到错误的 pom.xml 中。
所以我想知道是否有某种机制或 Maven 报告插件可以将 pom 与以前的版本进行比较,并向我展示添加或修改了哪些依赖项。
这样的事情存在吗?
我喜欢使用一个简单的脚本来获取排序的依赖项列表,然后将它们与 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
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
希望你觉得它有用。
在 Maven 中解决依赖问题的最佳方法是以下命令
mvn dependency:tree
我发现(对我来说)最简单的方法是使用 eclipse 'Effective POM' 视图。
这是怎么做的
希望这可以帮助 :)