我需要对 POM 文件部分中的依赖关系进行排序dependencyManagement,该文件用作我团队组合中所有项目的父项目。
这样做的动机与此处描述的动机类似。就我而言,我只是试图协调整个产品组合中使用的版本,以避免反复出现版本差异的噩梦:由于复制粘贴,一些项目使用依赖项的一个版本,而其他项目则使用另一个版本。另一个动机是只有一个地方来管理依赖关系。我所做的本质上是将所有模块的依赖项规范合并到dependencyManagement父 POM 的一个巨大部分中。(编辑:在寻找我的这种需求的答案的过程中,我了解到这样的 POM 就是 Maven 所说的 BOM 或“物料清单”。)
但是,此任务要求我在父 POM 中定义每个依赖项的版本。这样做时,我发现自己将依赖项规范放在不断增长的依赖项列表中的某个位置。添加依赖项并查明依赖项是否已指定变得越来越困难。但如果我可以对依赖项进行排序(例如按组 ID),那就容易多了。
是否有一个插件可以实现重新排序依赖项的目的?作为最后的手段,我最终会编写一个小程序,从父 POM 读取 XML 文件并排序输出。
最近发布的BOM Helper Maven 插件0.2.0版本现在的目标正是做到这一点。sort
您需要将插件添加到您的 pom 中:
<plugin>
<groupId>com.commsen.maven</groupId>
<artifactId>bom-helper-maven-plugin</artifactId>
<version>0.2.0</version>
</plugin>
Run Code Online (Sandbox Code Playgroud)
您可以将其配置为在每个构建上运行,但我宁愿仅在添加/更改依赖项时手动运行它。就像是:
mvn bom-helper:sort -Dbom-helper.inplace=true
Run Code Online (Sandbox Code Playgroud)
应该做这项工作。请参阅文档了解更多选项。
我用的是sortpom。有关参数的更多信息,请访问https://github.com/Ekryd/sortpom/wiki/Parameters
mvn com.github.ekryd.sortpom:sortpom-maven-plugin:sort -Dsort.encoding=UTF-8 -Dsort.sortDependencies=scope,groupId,artifactId -Dsort.sortPlugins=groupId,artifactId -Dsort.sortProperties=true -Dsort .sortExecutions=true -Dsort.sortDependencyExclusions=groupId、artifactId -Dsort.lineSeparator="\n" -Dsort.ignoreLineSeparators="false" -Dsort.expandEmptyElements=false -Dsort.nrOfIndentSpace=2 -Dsort.indentSchemaLocation=true
| 归档时间: |
|
| 查看次数: |
7609 次 |
| 最近记录: |