gradle的多專案構建(九)

2021-09-26 14:06:58 字數 1746 閱讀 2514

目錄

在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...