作者:许小晴晴原_890 | 来源:互联网 | 2023-02-04 16:48
我有一个Gradle项目,它取决于另一个Gradle项目.我的项目结构是这样的:
PROJECT1
的build.gradle
settings.gradle
SRC /
项目2
的build.gradle
settings.gradle
SRC /
在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中都收到此错误.我找到了一些关于同一问题的StackOverflow线程(这个和 这个),但它们没有帮助.
该摇篮多项目文档也没有提到,我可能会丢失,可能会导致错误的任何特殊要求.
当我离开include
呼叫时,我收到的消息是在根项目中找不到项目路径.
我也尝试将依赖项移动到子目录project1
,但没有成功.
我想知道我做错了什么,为什么显然没有其他人有同样的问题.我很感激提示.
注意:这不是Android项目.
1> Janek Bevend..:
正如第一条评论所指出的那样,include
实际上需要进入settings.gradle
而不进入build.gradle
.这同样适用于更改projectDir
财产.
评论3给了我另一个想法.该项目可包括settings.gradle
如下:
includeBuild '../project2'
并在project1/build.gradle
我指定依赖为
dependencies {
compile 'group:project2:version'
}
我通常更喜欢这个,因为它代码更少,看起来更干净.然而,缺点是递归复合构建是不可能的.因此,如果project2
它本身也是一个复合构建,这将无法工作.