Gradle特殊用法
自動調整 *.iml 中 orderEntry 順序
apply plugin: `com.android.application`
android {
........
preBuild {
doLast {
def imlFile = file(project.name + ".iml")
println `Change ` + project.name + `.iml order`
try {
def parsedXml = (new XmlParser()).parse(imlFile)
def jdkNode = parsedXml.component[1].orderEntry.find { it.`@type` == `jdk` }
parsedXml.component[1].remove(jdkNode)
def sdkString = "Android API " + android.compileSdkVersion.substring("android-".length()) + " Platform"
new Node(parsedXml.component[1], `orderEntry`, [`type`: `jdk`, `jdkName`: sdkString, `jdkType`: `Android SDK`])
groovy.xml.XmlUtil.serialize(parsedXml, new FileOutputStream(imlFile))
} catch (FileNotFoundException e) {
// nop, iml not found
}
}
}
........
}
如上所示,通過對 *.iml 檔案進行 xml 解析,然後刪除 代表Android SDK 的 jdk 預設節點,並在最後追加 Android SDK 節點。
相關文章
- JAVA中...的特殊用法。Java
- mysql insert的特殊用法MySql
- C++ 中特殊的用法C++
- 星號變數的特殊用法變數
- java replaceall 用法:處理特殊字元Java字元
- Oracle 樹形結構查詢的特殊用法Oracle
- eclipse 專案gradle無反應的幾種特殊情況EclipseGradle
- CSS中position樣式的一些特殊用法CSS
- scss 檔案裡的特殊符號 @ 和 @include 的用法CSS符號
- python中星號變數的幾種特殊用法Python變數
- C#中ref、out及特殊說明引數的用法C#
- 一道演算法題,引出collections.Counter的特殊用法演算法
- Android 特殊使用者通知用法彙總 - Notification 原始碼分析Android原始碼
- JavaScript中圓括號()和方括號[]的一個特殊用法JavaScript
- Java的特殊類用法:檔案類、內部類、本地類、匿名類Java
- [Gradle] Gradle 簡介Gradle
- 3個例項介紹shell指令碼中幾個特殊引數的用法指令碼
- Gradle系列之Gradle外掛Gradle
- Gradle系列(四) Gradle外掛Gradle
- gradleGradle
- gradle的build.gradle詳解GradleUI
- 特殊字元字元
- QCustomPlot開發筆記(二):QCustomPlot使用者互動、元素項以及特殊用法筆記
- 【Java】【Gradle】Gradle構建SpringBoot專案,Gradle模組化管理JavaGradleSpring Boot
- Gradle系列之認識Gradle任務Gradle
- groovy-gradle-setting.gradle和sourceGradle
- extjs特殊用法--js--呼叫變數方法定義前提最先變數要用var定義JS變數
- Gradle系列(三) Gradle配置構建和渠道包Gradle
- 不得不學之「 Gradle」 ④ Gradle 任務Gradle
- 不得不學之「 Gradle」 ⑤ Gradle 外掛Gradle
- Gradle核心思想(二)Gradle入門前奏Gradle
- Gradle入門系列(四)——初識Gradle TaskGradle
- Gradle系列之Android Gradle基礎配置GradleAndroid
- Gradle for Android系列之一 Gradle基礎GradleAndroid
- Gradle for Android 系列:初識 Gradle 檔案GradleAndroid
- HTML特殊字元HTML字元
- 特殊的排序排序
- 特殊IP地址