我的老板喜欢按照范围,组和工件ID对给定Maven pom文件中的依赖项进行排序。
我最近继承了相当多的项目,这些项目具有相当多的未被排序的依赖项。所以我整理了它们。
长话短说,我想确保我不会无意中删除依赖项或将错误的排序依赖项复制到错误的pom中。
所以我想知道是否存在某种机制或Maven报告插件,它将与先前版本区分pom并向我显示添加或修改了哪些依赖项。
这样的事情是否存在?
答案 0 :(得分:5)
我喜欢使用简单的script来获取依赖关系的排序列表,然后将它们与像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
答案 1 :(得分:4)
Maven插件 - version,可能会拯救你。
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
希望你觉得它很有用。
答案 2 :(得分:2)
我发现(对我来说)最简单的方法是使用eclipse' Effective POM'图。
这是怎么做的
希望这会有所帮助:)
答案 3 :(得分:1)
在Maven中解决依赖项问题的最佳方法是以下命令
mvn dependency:tree