2

我有一个相当大的项目的 Maven BOM(材料清单),其中包含<dependencyManagement>块内​​的数百个依赖项。我想在为我公司的其他人发布之前验证是否可以成功解决所有依赖项。

不幸的是,该命令mvn dependency:resolve(以及其他dependency类似的命令dependency:tree)似乎只在标准<dependencies>块上运行,但忽略了<dependencyManagement>. 我可以使用其他命令来执行此操作吗?

4

1 回答 1

2

这也是我需要的东西,所以我今天花了几个小时来制作一个插件。添加这个

<plugin>
    <groupId>com.commsen.maven</groupId>
    <artifactId>bom-helper-maven-plugin</artifactId>
    <version>0.1.0</version>
    <executions>
        <execution>
            <id>resolve</id>
            <phase>verify</phase>
            <goals>
                <goal>resolve</goal>
            </goals>
        </execution>
    </executions>
</plugin>

到 BOM 的pom应该使其在verify阶段运行并尝试解决该部分中的每个依赖dependencyManagement项。

我用一个非常大的 BOM 对其进行了测试,它似乎完成了工作。

也就是说,它的设计不是很好,也不是可配置的。可能有很多问题需要修复和改进(例如,它不考虑限定符)。

试一试,如果你发现它总体上很有用,但希望做更多或更好的事情,请打开一个问题或更好,发送拉取请求;)

于 2019-09-11T13:55:44.230 回答