1.Gradle学习

Gradle笔记

安装

先决条件

必须要先安装Java的JDK,而且JDK的版本要大于JDK1.7。java -version 可查询当前电脑已安装的版本

在这里插入图片描述

下载

官网

版本集合

Gradle 发行包是一个 ZIP 文件。完整的发行包包括以下内容(官方发行包有 full 完整版,也有不带源码和文档的版本,可根据需求下载。

配置环境变量

GRADLE_HOME/bin

运行 gradle 必须将 GRADLE_HOME/bin 加入到你的 PATH 环境变量中。

测试安装

运行如下命令来检查是否安装成功.该命令会显示当前的 JVM 版本和 Gradle 版本。

gradle -v 

JVM 参数配置

Gradle 运行时的 JVM 参数可以通过 GRADLE_OPTS 或 JAVA_OPTS 来设置.这些参数将会同时生效。 JAVA_OPTS 设置的参数将会同其它 JAVA 应用共享,一个典型的例子是可以在 JAVA_OPTS 中设置代理和 GRADLE_OPTS 设置内存参数。同时这些参数也可以在 gradle 或者 gradlew 脚本文件的开头进行设置。

构建基础

Projects 和 tasks

projects 和 tasks是 Gradle 中最重要的两个概念。任何一个 Gradle 构建都是由一个或多个 projects 组成。每个 project 包括许多可构建组成部分。 这完全取决于你要构建些什么。每个 project 都由多个 tasks 组成。每个 task 都代表了构建执行过程中的一个原子性操作。如编译,打包,生成 javadoc,发布到某个仓库等操作。

过程中的一个原子性操作。如编译,打包,生成 javadoc,发布到某个仓库等操作。

到目前为止,可以发现我们可以在一个 project 中定义一些简单任务,

在安卓项目中只有 `build.gradle.kts` 而没有 `build.gradle`,主要有以下原因: ### 采用 Kotlin DSL 随着 Gradle 对 Kotlin 的支持不断完善,Kotlin DSL(领域特定语言)逐渐成为一种流行的选择。Kotlin 是一种现代的、类型安全的编程语言,相较于传统的 Groovy 语言,它具有更好的代码可读性、类型检查和 IDE 支持。开发者更倾向于使用 `build.gradle.kts` 来编写构建脚本,因此项目中只保留了 Kotlin 版本的构建文件 [^2]。 ### 项目初始配置 在创建新项目时,开发人员可以选择使用 Kotlin DSL 作为默认的构建脚本语言。这样,项目初始化时就只会生成 `build.gradle.kts` 文件,而不会生成 `build.gradle` 文件。 ### 团队技术栈统一 如果开发团队更熟悉 Kotlin 语言,为了保持技术栈的统一和一致性,会选择使用 `build.gradle.kts` 进行项目构建配置,避免同时维护两种不同语言的构建脚本。 ### 影响 #### 积极影响 - **增强代码安全性**:Kotlin 的类型系统能够在编译时捕获许多潜在的错误,减少因类型不匹配等问题导致的构建失败,提高构建脚本的稳定性。 - **提升开发效率**:Kotlin 具有简洁的语法和丰富的标准库,能够更高效地编写构建逻辑。同时,IDE 对 Kotlin 的支持更好,提供了更智能的代码补全和错误提示功能,提升开发体验 [^2]。 #### 消极影响 - **兼容性问题**:一些旧的插件或库可能只提供 Groovy DSL 的配置示例,需要进行额外的转换才能在 `build.gradle.kts` 中使用。 - **学习成本**:对于不熟悉 Kotlin 语言的开发者来说,需要花费一定的时间学习 Kotlin 的语法和 Gradle 的 Kotlin DSL 用法。 ### 示例代码 以下是一个简单的 `build.gradle.kts` 配置示例,展示了如何在其中添加依赖: ```kotlin plugins { id("com.android.application") kotlin("android") } android { compileSdk = 33 defaultConfig { applicationId = "com.example.myapp" minSdk = 21 targetSdk = 33 versionCode = 1 versionName = "1.0" testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" } buildTypes { release { isMinifyEnabled = false proguardFiles( getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro" ) } } compileOptions { sourceCompatibility = JavaVersion.VERSION_1_8 targetCompatibility = JavaVersion.VERSION_1_8 } kotlinOptions { jvmTarget = "1.8" } } dependencies { implementation("androidx.core:core-ktx:1.7.0") implementation("androidx.appcompat:appcompat:1.4.1") implementation("com.google.android.material:material:1.5.0") testImplementation("junit:junit:4.13.2") androidTestImplementation("androidx.test.ext:junit:1.1.3") androidTestImplementation("androidx.test.espresso:espresso-core:3.4.0") } ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值