[英]Trying to include Gradle project as dependency, but include() not working
我有一个Gradle项目,它依赖于另一个Gradle项目。 我的项目结构如下:
在project1/build.gradle
我想添加project2
作为依赖项:
version '1.0-SNAPSHOT'
apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'idea'
sourceCompatibility = 1.8
repositories {
mavenCentral()
}
sourceSets {
main {
java {
srcDirs = [ 'src' ]
}
}
}
include ':project2'
project(':project2').projectDir = new File("../project2")
dependencies {
compile project(':project2')
}
不幸的是,我总是收到以下错误消息:
错误:(21,0)在类型为org.gradle.api.Project的根项目'project1'上找不到参数[:project2]的方法include()。
我正在使用Gradle 3.5,并且在命令行( gradle build
)和IntelliJ中都收到此错误。 我发现了一些关于同一问题( this和this )的StackOverflow线程,但是它们没有帮助。
Gradle多项目文档也没有提及我可能会遗漏的可能导致错误的任何特定要求。
当我退出include
调用时,我收到一条消息,指出在根项目中找不到项目路径。
我还尝试将依赖项移至project1
的子目录,但未成功。
我想知道我在做什么错,为什么其他人显然没有遇到相同的问题。 我会很感激的提示。
注意:这不是一个Android项目。
如第一条评论中所述, include
实际上需要进入settings.gradle
而不是build.gradle
。 更改projectDir
属性也是projectDir
。
评论3也给了我另一个想法。 该项目可以包含在settings.gradle
,如下所示:
includeBuild '../project2'
在project1/build.gradle
我将依赖项指定为
dependencies {
compile 'group:project2:version'
}
我通常会更好,因为它更少的代码并且看起来更干净。 但是不利的是,递归复合构建是不可能的。 因此,如果project2
本身也是复合构建,则将无法正常工作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.