如何在 gradle 中重用 pom.xml 中定义的依赖项
Posted
技术标签:
【中文标题】如何在 gradle 中重用 pom.xml 中定义的依赖项【英文标题】:how do I reuse the dependencies defined in pom.xml in gradle 【发布时间】:2018-02-10 01:44:56 【问题描述】:我想重用这个pom.xml file 中定义的依赖项,这是一个相当长的依赖项列表。为了方便起见,我想重用它。
所以我在 build.gradle 文件中添加了这样一行。:
dependencies
// unfortunately, Gradle seems just ignore this line.
compile("org.activiti:activiti-ui-root:6.0.0")
但似乎 gradle 只是忽略了这一行。如果我不想重写一长串依赖项,那么重用 pom 文件的最佳方法是什么?
请给我一些建议,非常感谢。
================================
谢谢大家。最后我发现“io.spring.gradle:dependency-management-plugin”有助于解决我的问题。
@madhead 是对的。 pom.xml 只提供 jars 的版本,但不会将任何文件导入我的项目。
pom.xml 实际上并没有定义任何依赖项,它只定义了dependencyManagement 块中的工件版本。因此,在 Gradle 中依赖此工件不会在您的项目中带来任何传递依赖(在 Maven 中也不会,顺便说一句)。
但没关系。版本信息就够了。
这个片段是我用来解决我的问题的。
buildscript
repositories
mavenCentral()
jcenter()
dependencies
classpath "io.spring.gradle:dependency-management-plugin:1.0.3.RELEASE"
.......
project(':editor-image-generator')
dependencyManagement
imports
// import the pom.xml from outside.
mavenBom "org.activiti:activiti-ui-root:6.0.0"
dependencies
// It's good to see that, you don't need to specify the version here.
// with the mavenBom imported above, you can always get the right version.
compile("org.activiti:activiti-bpmn-model")
testCompile("org.activiti:activiti-bpmn-converter")
compile("org.activiti:activiti-image-generator")
compile("org.imgscalr:imgscalr-lib:4.2")
compile("org.slf4j:slf4j-api")
testCompile("commons-io:commons-io")
testCompile("junit:junit")
【问题讨论】:
docs.gradle.org/current/userguide/… 我没有尝试,但我认为你可以实现它。在 Gradle 设置文件中,您可以实现读取 xml pom 文件的功能,获取所有依赖项,然后将它们作为 Gradle 依赖项加载。这只是一个想法。 你认为 Gradle 为什么会忽略这条线?你的build.gradle
的其余部分怎么样?
您可以将 pom
迁移到 build.gradle
并修复可能无法正常工作的内容。只需在带有pom.xml
的项目中运行gradle init
,我也同意Lu 为什么您认为Gradle 确实忽略了这种依赖关系?
【参考方案1】:
pom.xml
实际上并没有定义任何依赖项,它只定义了 dependencyManagement
block 中的工件版本。因此,在 Gradle 中依赖此工件不会在您的项目中带来任何传递依赖(在 Maven 中也不会,顺便说一句)。
您可以在 Spring's dependency management plugin 中为 Gradle 尝试什么。它允许在 Gradle 中为 BOM 重用 dependencyManagement
块定义。
【讨论】:
谢谢,@madhead,你是对的。您的信息有很大帮助。 Spring 的依赖管理插件非常好用,有助于解决版本问题。以上是关于如何在 gradle 中重用 pom.xml 中定义的依赖项的主要内容,如果未能解决你的问题,请参考以下文章
`gradle install` 如何生成 `pom.xml` 文件
Gradle build.gradle 到 Maven pom.xml
如何将 gradle 中的 groovy 任务转换为 Gradle Kotlin DSL 以生成 pom.xml?