目錄
在android studio中,乙個模組和乙個專案是有區別的。乙個專案包含多個模組module。而android studio中的每乙個module對應的是gradle多專案構建中的乙個專案
為什麼需要多專案構建呢?模組通常具有層次結構而且可以定義為相互依賴。gradle對構建多模組專案提供了強大的支援,gradle中的每一模組都是乙個專案。
在多專案構建中,settings檔案宣告了所需的配置來例項化專案的層次結構。在預設情況下,這個檔案被命名為settings.gradle,並且和根專案的build.gradle 檔案放在一起。
如果rootproject下面有兩個module,sub_project1和sub_project2,結構如下:
rootproject
sub_project2
subs
在專案的settings.gradle
中需要宣告成:
// : 後面是相對於根目錄的專案目錄
include ':sub_project1', 'sub_project2'
// 引入子模組下面的module
include ':subs:sub_project3'
定義task
我們可以定義一些專案公共的行為task
// allprojects(根專案和子專案都有效)
allprojects"
}}// 對子專案有效
subprojects"
}}
task的執行順序
如果task沒有宣告依賴另乙個task,在多專案構建中位於根目錄的task總是先執行。對於子專案來說,執行順序完全取決於專案名稱的字母順序。例如,sub_project1在sub_project2之前。記住,在settings檔案中子專案的宣告順序完全不影響其執行順序。
專案task相互依賴
多專案之間一般不會是毫無關聯的,可能會存在依賴關係。比如sub-project1中有taska和taskb,taska依賴於taskb,而taskb依賴於sub_project2中的taskc。到目前為止,我們把子專案中的屬性和任務都放在根目錄下的build.gradle中宣告,現在是時候在它們各自的build.gradle中是宣告自己的任務了。
//sub_project1 中
task taska << from $"
}task taskb << from $"
}taska.dependson taskb
taskb.dependson ':sub_project2:taskc'
//sub_project2 中
task taskc << from $"
}
我們分析一下,taska依賴taskb,所以taska執行之前,taskb必須先執行;而taskb又依賴於sub_project2中的taskc,所以taskb執行前,taskc必須先執行。
在乙個根專案中定義的屬性會自動的被其子專案繼承,子專案中也可以用到屬性。
ext.projectinfo=['group':'com.sososeen09','version':'0.1']
group = projectinfo.group
version = projectinfo.version
project(':sub_project1')
project(':sub_project2')
使用Gradle構建專案
使用gradle構建專案之前,咱們先聊聊m en,使用m en構建專案和配置主要 接下來正式使用gradle來構建專案的和步驟 5.檢查安裝 gradle v 3.通過doc構建專案 編譯原始碼,cmd 切到 spring framework 5.0.2.release 目錄,執行 gradlew....
gradle多專案 svn依賴
當svn有多個子專案且沒有根專案的時候,用eclipse拷貝下來是容易出問題的,經常子專案之間的依賴會有問題,還是推薦用idea。操作說明 如果svn有 a,b,c,d四個專案,a為web專案,b為給客戶端的介面應用,c為公共應用,d為dao應用 a,b,c,d都是以zt開頭的命名 先在idea的專...
Gradle多模組的專案構建
repositories task mkdirs sourcesets resources.srcdirs each 分別執行gradle mkdirs任務會自動建立好src目錄。2.對包含在多專案構建中的專案進行配置 可以通過以下步驟,對包含在多專案構建中的專案進行配置 在根專案的根目錄下建立se...