.初始化階段:
Gradle 支持單項目和多項目構建
在初始化階段,Gradle 確定哪些項目將參與構建,並為每個項目創建一個 Project 實例
.設定階段:
在此階段,配置專案物件
將執行構建的所有專案的構建腳本
Gradle 1.4 引入了一種稱為按需配置的孵化選擇功能。在此模式下,Gradle 僅配置相關專案
.執行階段:
Gradle 確定要在執行期間創建和設定任務的子集,然後子集傳遞給 gradle 命令和當前目錄。最後 Gradle 執行每個選定的任務
其中設定的部分還有四種狀態,Internal、Incubating、Public、Deprecated,最後兩個大家都知道,就不說明了
官網連結
※Internal:
內部功能不是為公共使用而設計的,僅供Gradle本身使用
可以在任何時候以任何方式改變而不另行通知
所以,儘量避免使用此類功能
內部功能可能演變為公共功能
※Incubating:
孵化狀態下的功能可能會在將來的 Gradle 版本中發生變化,直到它不再孵化為止
孵化的所有方法/屬性/類都使用 @Incubating
gradle 預設 import 的套件非常多,看官網連結
※
this.gradle.addProjectEvaluationListener(new ProjectEvaluationListener() { @Override void beforeEvaluate(Project project) { println '無' } @Override void afterEvaluate(Project project, ProjectState projectState) { println '設定後,執行前1' } }) this.gradle.addListener(new BuildListener() { @Override void buildStarted(Gradle gradle) { println '無' } @Override void settingsEvaluated(Settings settings) { println '無' } @Override void projectsLoaded(Gradle gradle) { println '無' } @Override void projectsEvaluated(Gradle gradle) { println '設定後,執行前4-1' } @Override void buildFinished(BuildResult buildResult) { println '生命週期完成1-2' } }) this.gradle.addBuildListener(new BuildListener() { @Override void buildStarted(Gradle gradle) { println '無' } @Override void settingsEvaluated(Settings settings) { println '無' } @Override void projectsLoaded(Gradle gradle) { println '無' } @Override void projectsEvaluated(Gradle gradle) { println '設定後,執行前4-2' } @Override void buildFinished(BuildResult buildResult) { println '生命週期完成1-1' } }) this.beforeEvaluate { println '無' } this.gradle.beforeProject { println '無' } this.afterEvaluate { println '設定後,執行前3' } this.gradle.afterProject { println '設定後,執行前2' } this.gradle.buildFinished { println '生命週期完成2' }
※在 build.gradle 同層,有一個檔案叫 settings.gradle,再裡面寫 println,會發現它是最早印出來的,因為初始化就在這裡
沒有留言:
張貼留言