Kotlin DSL脚本 就像基于groovy的DSL一样,Kotlin DSL是在Gradle的Java API之上实现的。...注意,您可以将Groovy DSL构建脚本与Kotlin DSL构建脚本混合使用,例如,Kotlin DSL构建脚本可以应用Groovy DSL脚本,多项目构建中的每个项目都可以使用其中任何一个。...DSL包中的所有类型 避免使用内部Kotlin DSL api 在插件和构建脚本中使用内部Kotlin DSL api可能会在Gradle或插件发生变化时破坏构建。...Kotlin DSL提供了withConvention(T::class){}扩展函数来实现: 配置源集约定 plugins { groovy } sourceSets { main...要从Groovy调用具有默认参数的Kotlin函数,请始终传递所有函数参数的值 从Kotlin给Groovy打电话 要从Kotlin调用一个带命名参数的Groovy函数,需要传递一个Map<String
AndroidSourceSets ( build.gradle#android#sourceSets 配置 ) 文档位置 : android-gradle-dsl/2.3/com.android.build.gradle.api.AndroidSourceSet.html...AndroidSourceDirectorySet ( build.gradle#android#sourceSets#aidl/assets/java/jni/jniLibs 配置 ) 文档位置...( build.gradle#android#sourceSets#manifest 配置 ) 文档位置 : android-gradle-dsl/2.3/com.android.build.gradle.api.AndroidSourceFile.html...在 Groovy 中定义扩展属性代码如下 : 扩展属性是全局变量 , 对所有子项目可见 ; // 定义扩展属性 , 其中的变量对所有子项目可见 ext { hello1 = 'Hello World1...:kotlin-stdlib:$kotlin_version" implementation 'androidx.core:core-ktx:1.6.0' implementation
文章目录 一、将自定义 Gradle 插件上传到远程仓库中 二、创建自定义插件类型模块 ( Java or Kotlin Library ) 三、手动导入相关依赖 ( Java | Groovy | Gradle...AndroidSourceSets ( build.gradle#android#sourceSets 配置 ) 文档位置 : android-gradle-dsl/2.3/com.android.build.gradle.api.AndroidSourceSet.html...( build.gradle#android#sourceSets#manifest 配置 ) 文档位置 : android-gradle-dsl/2.3/com.android.build.gradle.api.AndroidSourceFile.html...Library " 类型的依赖库 ; 三、手动导入相关依赖 ( Java | Groovy | Gradle ) ---- 在 buildSrc 目录 下 , 会自动引入 Java / Groovy...= JavaVersion.VERSION_1_7 } dependencies { implementation "org.jetbrains.kotlin:kotlin-stdlib:$
默认约定是使用不同的文件夹: sourceSets { main.kotlin.srcDirs += 'src/main/kotlin' main.java.srcDirs += 'src...如果不使用默认约定,那么应该更新相应的 sourceSets 属性 sourceSets { main.kotlin.srcDirs += 'src/main/myKotlin' main.java.srcDirs...多项目配置的实现通常是在一个根项目路径下将所有项目作为子文件夹包含进去。...{ …… sourceSets { main.java.srcDirs += 'src/main/kotlin' } } 提示: 关于 Kotlin Android 的 Gradle...其实,这些配置语法看起跟 Groovy 的很像。
文章目录 一、创建自定义插件类型模块 ( Java or Kotlin Library ) 二、手动导入相关依赖 ( Java | Groovy | Gradle ) 三、在 Java or Kotlin...AndroidSourceSets ( build.gradle#android#sourceSets 配置 ) 文档位置 : android-gradle-dsl/2.3/com.android.build.gradle.api.AndroidSourceSet.html...( build.gradle#android#sourceSets#manifest 配置 ) 文档位置 : android-gradle-dsl/2.3/com.android.build.gradle.api.AndroidSourceFile.html...Library " 类型的依赖库 ; 二、手动导入相关依赖 ( Java | Groovy | Gradle ) ---- 在 buildSrc 目录 下 , 会自动引入 Java / Groovy...groovy 目录 , 用于存放 Groovy 代码 , 在其中定义包名以及包名下的源码 : 代码示例如下 : package kim.hsl.plugin import org.gradle.api.Plugin
AndroidSourceSets ( build.gradle#android#sourceSets 配置 ) 文档位置 : android-gradle-dsl/2.3/com.android.build.gradle.api.AndroidSourceSet.html...AndroidSourceDirectorySet ( build.gradle#android#sourceSets#aidl/assets/java/jni/jniLibs 配置 ) 文档位置...( build.gradle#android#sourceSets#manifest 配置 ) 文档位置 : android-gradle-dsl/2.3/com.android.build.gradle.api.AndroidSourceFile.html...Library 模块中定义插件 ---- 在插件模块中的 src/main 目录 下创建 groovy 目录 , 用于存放 Groovy 代码 , 在其中定义包名以及包名下的源码 : 代码示例如下...= JavaVersion.VERSION_1_7 } dependencies { implementation "org.jetbrains.kotlin:kotlin-stdlib:$
AndroidSourceSets ( build.gradle#android#sourceSets 配置 ) 文档位置 : android-gradle-dsl/2.3/com.android.build.gradle.api.AndroidSourceSet.html...( build.gradle#android#sourceSets#manifest 配置 ) 文档位置 : android-gradle-dsl/2.3/com.android.build.gradle.api.AndroidSourceFile.html...' id 'groovy' } java { sourceCompatibility = JavaVersion.VERSION_1_7 targetCompatibility...= JavaVersion.VERSION_1_7 } dependencies { implementation "org.jetbrains.kotlin:kotlin-stdlib:$...plugin' // 指定分类器 , 与其它 jar 包进行区分 classifier 'sources' // 设置打包哪些文件 // 这里设置的是 main 目录下的所有文件
The Gradle build language Gradle 构建语言 Gradle 提供了一种领域特定语言(DSL)来描述构建,这种构建语言在 Groovy 和 Kotlin 都可以使用。...Groovy 构建脚本可以包含任何 Groovy 语言元素。 Kotlin 构建脚本可以包含任何 Kotlin 语言元素。 Gradle 假设每个构建脚本都使用 UTF-8进行编码。...这意味着脚本接口声明的所有属性和方法在脚本中都可用。 当 Gradle 执行 Kotlin 构建脚本时(。 Kts) ,它将脚本编译成 KotlinBuildScript 的子类。...这意味着 KotlinBuildScript 类型声明的所有可见属性和函数都可以在脚本中使用。...basics 一些 Groovy 的基础知识 Groovy 语言为创建 dsl 提供了大量特性,Gradle 构建语言利用了这些特性。
文章目录 一、java 和 groovy 插件自带文档任务 二、自定义文档打包任务 ( Jar 类型 Gradle 任务 ) 三、生成文档 Jar 包 Android Plugin DSL Reference...AndroidSourceSets ( build.gradle#android#sourceSets 配置 ) 文档位置 : android-gradle-dsl/2.3/com.android.build.gradle.api.AndroidSourceSet.html...( build.gradle#android#sourceSets#manifest 配置 ) 文档位置 : android-gradle-dsl/2.3/com.android.build.gradle.api.AndroidSourceFile.html...Gradle 任务 ; 两个 Gradle 任务 ; 这两个任务是 build.gradle 构建脚本 中 , plugins { id 'java-library' id 'kotlin...' id 'groovy' } 中 ‘java-library’ 插件 和 ‘groovy’ 插件 自带的 Gradle 任务 , 执行这两个任务 , 就会得到对应的文档 ; 二、自定义文档打包任务
Plugin } groovy 插件: 使用 Groovy 语言开发必备; org.jetbrains.kotlin.jvm 插件: 使用 Kotlin 语言开发必备; java-gradle-plugin...Gradle Plugin } sourceSets { main { groovy { srcDir 'src/main/groovy'...又因为编译插件代码需要先 Sync,只能先将工程中所有使用插件的代码注释掉,重新编译插件模块,再将注释修改回来。真麻烦!...现在的趋势是:Gradle 脚本使用 Groovy 或 Kotlin 开发,而 Gradle 插件使用 Kotlin 开发。例如,我们可以发现 AGP 现在已经用 Kotlin 开发了。...虽然趋势是往 Kotlin 靠,但目前存量的 Gradle 脚本 / 插件还是以 Groovy 为主。
AndroidSourceSets ( build.gradle#android#sourceSets 配置 ) 文档位置 : android-gradle-dsl/2.3/com.android.build.gradle.api.AndroidSourceSet.html...AndroidSourceDirectorySet ( build.gradle#android#sourceSets#aidl/assets/java/jni/jniLibs 配置 ) 文档位置...( build.gradle#android#sourceSets#manifest 配置 ) 文档位置 : android-gradle-dsl/2.3/com.android.build.gradle.api.AndroidSourceFile.html...:kotlin-gradle-plugin:$kotlin_version" // NOTE: Do not place your application dependencies here...:kotlin-stdlib:$kotlin_version" implementation 'androidx.core:core-ktx:1.6.0' implementation
Gradle plugin Enter selection (default: basic) [1..4] 2 Select implementation language: 1: C++ 2: Groovy...3: Java 4: Kotlin 5: Scala 6: Swift Enter selection (default: Java) [1..6] 3 Select build script...DSL: 1: Groovy 2: Kotlin Enter selection (default: Groovy) [1..2] 1 Select test framework: 1:...当然,如果你有自定义的源文件目录,也可以这样手动指定: sourceSets { main { java { srcDirs = ['src']...如果我们只是想要在现有的代码路径上再添加一个新的路径,那么可以使用srcDir: sourceSets { main { java { srcDir 'thirdParty
Groovy DSL: Gradle的API是Java的,Groovy DSL是在其之上的脚本语言. Groovy DS脚本文件后缀: .gradle....在讨论从 Groovy 迁移时,术语“KTS”和“Kotlin DSL”可以互换使用。...换句话说,“将 Android 项目从 Groovy 转换为 KTS”与“将 Android 项目从 Groovy 转换为 Kotlin DSL”实际上是一个意思。...Groovy 允许在调用函数时省略括号,而 Kotlin 总是需要括号。 Gradle Groovy DSL 允许在分配属性时省略 = 赋值运算符,而 Kotlin 始终需要赋值运算符。...groovy-kts-diff2.png 脚本文件名 Groovy DSL 脚本文件使用 .gradle 文件扩展名。 Kotlin DSL 脚本文件使用 .gradle.kts 文件扩展名。
文章目录 一、buildSrc 目录中实现 Gradle 插件 二、创建 buildSrc 目录 三、创建 src/main/groovy 源码目录 四、演示 buildSrc 模块作用 ( 在 Gradle...AndroidSourceSets ( build.gradle#android#sourceSets 配置 ) 文档位置 : android-gradle-dsl/2.3/com.android.build.gradle.api.AndroidSourceSet.html...AndroidSourceDirectorySet ( build.gradle#android#sourceSets#aidl/assets/java/jni/jniLibs 配置 ) 文档位置...( build.gradle#android#sourceSets#manifest 配置 ) 文档位置 : android-gradle-dsl/2.3/com.android.build.gradle.api.AndroidSourceFile.html.../ Java / Gradle 的 API 依赖 , 三、创建 src/main/groovy 源码目录 ---- 然后在该目录下创建 src/main/groovy 目录 , 用于存放 Gradle
在讨论从 Groovy 迁移时,术语“KTS”和“Kotlin DSL”可以互换使用。...换句话说,“将 Android 项目从 Groovy 转换为 KTS”与“将 Android 项目从 Groovy 转换为 Kotlin DSL”实际上是一个意思。...Groovy 允许在调用函数时省略括号,而 Kotlin 总是需要括号。 Gradle Groovy DSL 允许在分配属性时省略 = 赋值运算符,而 Kotlin 始终需要赋值运算符。...[groovy-kts-diff2.png] 脚本文件名 Groovy DSL 脚本文件使用 .gradle 文件扩展名。 Kotlin DSL 脚本文件使用 .gradle.kts 文件扩展名。...参考文档 Android官网-将构建配置从 Groovy 迁移到 KTS Migrating build logic from Groovy to Kotlin GitHub:kotlin-dsl-samples
Gradle使用Groovy语言作为脚本语言,而Maven使用XML。 Gradle允许开发者编写自己的插件来实现定制化的构建逻辑,而Maven只能通过编写插件或使用现有的插件来扩展功能。...为什么使用Gradle: 简单易学:Gradle使用简单明了的DSL语言,易于学习和使用。 高度灵活:Gradle可以根据项目需要定制各种不同的构建流程。...} dependencies { compile 'commons-lang:commons-lang:2.6' testCompile 'junit:junit:4.12' } sourceSets...并使用以下命令运行该应用程序: java -jar build/libs/my-application.jar Gradle VS Maven 首先,Maven使用XML来配置项目,而Gradle使用Groovy...或Kotlin等DSL(领域特定语言)来定义构建脚本。
领取专属 10元无门槛券
手把手带您无忧上云