我有一个Gradle项目,它依赖于另一个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')
}
不幸的是,我总是收到此错误信息:
Error:(21, 0) Could not find method include() for arguments [:project2] on root project 'project1' of type org.gradle.api.Project.
我正在使用Gradle 3.5,在命令行(gradle build
)和IntelliJ中均出现错误。我发现了几个关于同一问题的StackOverflow线程(this和this),但它们没有帮助。
Gradle multi-project documentation也没有提到我可能会丢失,可能会导致错误的任何具体要求。
当我离开include
调用时,我收到消息,指出在根项目中找不到项目路径。
我也尝试将依赖项移动到project1
的子目录,但没有成功。
我在想我在做什么错,为什么显然没有其他人有同样的问题。我会很感激提示。
注意:这不是一个Android项目。
'include'应该在一个名为''settings.gradle'的单独文件中调用 - 请试试看。 – Opal
谢谢!我想那是我错过的。但是,现在我收到只读属性projectDir无法设置的消息。我通过指定compile project(':..:project2')作为依赖关系并删除projectDir assigment来解决它。 –
你不能用gradle做到这一点。这两个项目都必须是多项目构建的子项目(https://docs.gradle.org/current/userguide/multi_project_builds.html),或者您必须使用组合构建(https://docs.gradle。组织/电流/ userguide/composite_builds.html)。 –