Gradle特殊用法

简介: 自动调整 *.iml 中 orderEntry 顺序apply plugin: 'com.android.application'android { .

自动调整 *.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
Gradle下载&安装 Gradle wrapper(gradlew)
Gradle的仓库可以和Maven的仓库为同一个,环境变量中的名字必须为 GRADLE_USER_HOME,相当于配置Gradle 本地仓库位置和 Gradle Wrapper 缓存目录
503 0
|
5月前
|
Java 程序员 API
Gradle笔记 二 Gradle的基础Groovy
Gradle笔记 二 Gradle的基础Groovy
47 0
|
Java API Apache
Gradle从0入门到实战系列【一】Hello World Gradle
早期没有项目管理工具时,对于项目所依赖的第三方包采用的是:拷贝三方jar包到本地,然后加入到lib目录下,这样做劣势不言而喻,管理复杂容易冲突。 Gradle是一个基于Apache Ant和Apache Maven概念的项目自动化构建开源工具。它使用一种基于Groovy的特定领域语言(DSL)来声明项目设置,也增加了基于Kotlin语言的kotlin-based DSL,抛弃了基于XML的各种繁琐配置。面向Java应用为主。
460 0
Gradle从0入门到实战系列【一】Hello World Gradle
|
6月前
|
Java 测试技术 Scala
[√]groovy / gradle学习
[√]groovy / gradle学习
32 0
|
9月前
|
Java Shell 数据处理
Android 根目录下和应用目录下的build.gradle的详解,以及groovy语法的讲解
Android 根目录下和应用目录下的build.gradle的详解,以及groovy语法的讲解
163 0
|
IDE Java API
Gradle 系列(2)手把手带你自定义 Gradle 插件
Gradle 系列(2)手把手带你自定义 Gradle 插件
674 0
Gradle 系列(2)手把手带你自定义 Gradle 插件
|
11月前
|
缓存 Java 编译器
|
XML JSON JavaScript
Gradle筑基篇(二)-groovy语法详解
大家回想一下自己第一次接触`Gradle`是什么时候? 相信大家也都是和我一样,在我们打开第一个AS项目的时候, 发现有很多带gradle字样的文件:`setting.gradle, build.gradle,gradle.warpper`,以及在`gradle`文件中各种配置, 这些都是啥wy啊。
|
Java Apache Maven
Gradle的配置与简单使用
Gradle的配置与简单使用
|
Java API Android开发
【Deprecated】「Gradle」| 手把手自定义 Gradle 插件 | 七日打卡
【Deprecated】「Gradle」| 手把手自定义 Gradle 插件 | 七日打卡
210 0
【Deprecated】「Gradle」| 手把手自定义 Gradle 插件 | 七日打卡