我有一个使用Gradle作为构建工具的项目,还有一个使用Maven的POM的子项目。我没有更改子项目上的构建工具的自由。
我想要实现的是将我的项目与Maven POM添加为Gradle项目的依赖项。
其中根目录(当前目录)是我的Gradle项目,包含build.gradle
,Maven项目位于vendor/other-proj/
下,POM文件就在该目录下。
我已经在我的build.gradle
文件上尝试了这些变化:
第1次尝试:
include("vendor/other-proj/")
project(':other-proj') {
projectDir = new File("vendor/other-proj/pom.xml")
}
dependencies {
compile project(':other-proj')
}
第2次尝试:
dependencies {
compile project('vendor/other-proj/')
}
第三次尝试:
dependencies {
compile project('vendor/other-proj/pom.xml')
}
第4次尝试:
dependencies {
compile files 'vendor/other-proj/pom.xml'
}
我在网上找不到任何相关的东西,似乎大多数Gradle/Maven用例都受到发布到Maven或生成POM的影响,但我不想做任何这些事情。
谁能给我指个方向?
2条答案
按热度按时间f2uvfpb91#
您可以像下面这样“伪造”包含一个Maven项目:
通过这种方式,Gradle将在编译前执行Maven构建(
compileMavenProject
)。但请注意,它不是传统意义上的Gradle“项目”,不会显示出来,例如,如果您运行gradle dependencies
。编辑:您可以使用类似的技术来包含maven依赖项:
7ajki6be2#
您不能在gradle settings.gradle中“包含”Maven项目。最简单的方法是构建Maven项目,并使用
mvn install
(可以是默认的.m2位置,也可以是任何其他自定义位置)将其安装到本地存储库,然后使用groupname:modulename:version从gradle项目中使用它可以使用
compile files
直接依赖于maven项目的jar,但这并不理想,因为它不会获取可传递的依赖项,您必须自己手动添加这些依赖项。