为什么从maven迁移到gradle后会出现新的依赖项

yws3nbqq  于 2023-10-17  发布在  Maven
关注(0)|答案(2)|浏览(175)

我工作中的应用程序是一个maven应用程序,其pom文件继承自父pom文件。我遵循了迁移文档并扫描了maven和gradle build。但是我注意到有些依赖项在gradle构建中包含了一些额外的子依赖项?这些依赖项不存在,我的构建失败。怎么修?
下面是maven构建报告和gradle构建报告之间的比较。

上面的是gradle的,下面的是maven的。
更新:这里是我的gradle构建失败的可传递依赖。<Optional>true在gradle中不工作。

m1m5dgzv

m1m5dgzv1#

Gradle和Maven解决依赖冲突的方式不同。因此,当使用默认设置时,相同的原始依赖关系图可以产生不同的最终依赖关系图。
here is the section of the gradle docs that talk about the differences between how the two systems work.

laximzn5

laximzn52#

这是Gradle中的一个bug:https://github.com/gradle/gradle/issues/26110
可选依赖项通常会得到正确处理。但Gradle似乎并没有忽略标记内容中周围的空格,而Maven则忽略了它们。
问题是,你从哪里得到了POM。我在任何公共Maven仓库中都找不到提到的依赖项。看起来这个POM是手工制作的,而不是由工具构建的,因为任何自动生成的POM都不应该有这些空间,因此会得到正确的处理。
因此,如果这是您手动创建的POM,您可以通过删除这些空格轻松修复它。

相关问题