我有一個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)。 –