簡體   English   中英

試圖將Gradle項目包含為依賴項,但include()無法正常工作

[英]Trying to include Gradle project as dependency, but include() not working

我有一個Gradle項目,它依賴於另一個Gradle項目。 我的項目結構如下:

  • 專案1
    • 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中都收到此錯誤。 我發現了一些關於同一問題( thisthis )的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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM