簡體   English   中英

Gradle中依賴項的依賴項

[英]Dependencies of dependencies in Gradle

我正在學習Gradle,正在嘗試尋找最佳實踐。

我將描述的項目已成功構建。 您可以在GitHub上進行克隆,這是一個eclipse / java項目: https : //github.com/pauloleitemoreira/GradleTests.git

假設我有一個MainProject,其中某些文件模塊依賴項不屬於MainProject。

項目結構

x-MainProject
|        |
|        x-mainModule 
|
x-LibProject
|        |
|        x-libModule
|
x-BaseLibProject
         |
         x-baseLibModule

MainProject / setting.gradle文件:

include ':mainModule'

include ':LibProject', ':LibProject:libModule'
project(':LibProject').projectDir = new File(settingsDir, '../LibProject')
project(':LibProject:libModule').projectDir = new File(settingsDir, '../LibProject/libModule')

/*???*/include ':BaseLibProject', ':BaseLibProject:baseLibModule'
/*???*/project(':BaseLibProject').projectDir = new File(settingsDir, '../BaseLibProject')
/*???*/project(':BaseLibProject:baseLibModule').projectDir = new File(settingsDir, '../BaseLibProject/baseLibModule')

LibProject / setting.gradle文件:

include ':libModule'

include ':BaseLibProject', ':BaseLibProject:baseLibModule'
project(':BaseLibProject').projectDir = new File(settingsDir, '../BaseLibProject')
project(':BaseLibProject:baseLibModule').projectDir = new File(settingsDir, '../BaseLibProject/baseLibModule')

BaseLibProject / setting.gradle文件:

include 'baseLibModule'

我注意到在Build時僅執行MainProject / setting.gradle文件。 當我構建MainProject時,不會執行其他LibProject / setting.gradle和BaseLibProject / setting.gradle。

我用/*???*/標記了聽起來很奇怪的行,因為我想libModule必須知道您的依賴項在哪里。 以我的理解,這些行不是必需的,並且在構建LibModule時,gradle可以包括BaseLibModule。 但是不幸的是,如果我刪除這些行,該項目將無法構建。

我在想是否還有其他地方可以放置project(':...').projectDir = new File... ,以避免包含依賴性文件的依賴性?

Gradle用戶指南中的構建生命周期一章介紹了多項目構建的工作方式。 簡單的版本是在根項目文件夾中有一個settings.gradle ,它定義了構建中包括哪些項目。 每個項目都可以具有build.gradle (或名稱可以不同或文件可能丟失)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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