【Android Gradle 插件】Gradle 映射文件 ( settings.gradle 映射为 Settings 类 | build.gradle 映射为 Project 类 )
生活随笔
收集整理的這篇文章主要介紹了
【Android Gradle 插件】Gradle 映射文件 ( settings.gradle 映射为 Settings 类 | build.gradle 映射为 Project 类 )
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
- 一、settings.gradle 映射為 Settings 類
- 二、build.gradle 映射為 Project 類
Android Plugin DSL Reference 參考文檔 : https://google.github.io/android-gradle-dsl/2.3/
一、settings.gradle 映射為 Settings 類
根目錄下的 settings.gradle 腳本 , 編譯時被映射為 Settings 類 ;
settings 中可以直接調用 Settings 接口中的方法 , 查看 include 方法 , 發現該 include 方法定義在 Settings 接口中 ;
@HasInternalProtocol public interface Settings extends PluginAware, ExtensionAware {/*** <p>設置文件的默認名稱。</p>*/String DEFAULT_SETTINGS_FILE = "settings.gradle";/*** <p>將給定的項目添加到生成中。* 提供的列表中的每個路徑都被視為要添加到生成中的項目的路徑。* 請注意,這些路徑不是文件路徑,而是指定新項目在項目層次結構中的位置。* 因此,提供的路徑必須使用“:”字符作為分隔符(而不是“/”)。</p>** <p>提供的路徑的最后一個元素用作項目名稱。* 提供的路徑將轉換為相對于根項目目錄的項目目錄。* 包含項目后,可以通過更改“projectDir”屬性來更改項目目錄 (see {@link ProjectDescriptor#setProjectDir(File)})</p>** <p>例如,路徑{@code a:b}添加了一個帶有路徑{@code:a:b}、名稱{@code b}和項目目錄{@code$rootDir/a/b}的項目。* 它還添加了路徑為{@code:a}、名稱為{@code a}、項目目錄為{@code$rootDir/a}的項目,如果它還不存在的話。</p>** <p>使用項目路徑的一些常見示例如下:</p>** <pre class='autoTestedSettings'>* // 包括兩個項目,“foo”和“foo:bar”* // 通過將“:”替換為“/”來推斷目錄* include 'foo:bar'** // 包括一個項目,其項目目錄與邏輯項目路徑不匹配* include 'baz'* project(':baz').projectDir = file('foo/baz')** // 包括許多其項目目錄與邏輯項目路徑不匹配的項目* file('subprojects').eachDir { dir ->* include dir.name* project(":${dir.name}").projectDir = dir* }* </pre>** @param projectPaths 要添加的項目。*/void include(String... projectPaths); }二、build.gradle 映射為 Project 類
Module 模塊下的 build.gradle 會被映射為 Project 類 , 因此在 build.gradle 中可以直接調用 Project 中的方法 ;
查看 build.gradle 中的 dependencies 方法源碼 , 該方法定義在 Project.java 中 ;
@HasInternalProtocol public interface Project extends Comparable<Project>, ExtensionAware, PluginAware {/*** 默認的項目生成文件名。*/String DEFAULT_BUILD_FILE = "build.gradle";/*** <p>配置此項目的依賴項。** <p>此方法對該項目的{@link DependencyHandler}執行給定的閉包。這個 {@link* DependencyHandler} 作為閉包的委托傳遞給閉包。** <h3>Examples:</h3>* See docs for {@link DependencyHandler}** @param configureClosure 用于配置依賴項的閉包。*/void dependencies(Closure configureClosure); }總結
以上是生活随笔為你收集整理的【Android Gradle 插件】Gradle 映射文件 ( settings.gradle 映射为 Settings 类 | build.gradle 映射为 Project 类 )的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【错误记录】Android Studio
- 下一篇: 【Android Gradle 插件】M