Gradle 是用于 JVM 项目和许多其他生态系统的构建自动化工具。
构建逻辑使用 Groovy DSL(.gradle)或 Kotlin DSL
(.gradle.kts)编写。Gradle 本身运行在 JVM 上。
项目文件 #
在仓库根目录中,重要文件包括:
settings.gradle[.kts]定义构建并包含子项目。 多项目构建必须包含此文件,也可以使用它设置根项目名称。build.gradle[.kts]为根项目或子项目定义插件、依赖项、任务和约定。gradle.properties保存项目属性。用户级属性可以位于~/.gradle/gradle.properties。gradlew、gradlew.bat和gradle/wrapper/构成 Gradle Wrapper, 应提交到版本库。.gradle/是本地 Gradle 状态目录,应将其加入忽略列表。
在 settings.gradle.kts 中使用 include("service", "web") 注册
子项目。每个子项目可以拥有自己的构建脚本,同时共享整个仓库范围的约定。
使用 Wrapper #
在 CI 和日常开发中,应运行 ./gradlew build,而不是全局安装的
gradle。Wrapper 会下载
gradle/wrapper/gradle-wrapper.properties 中指定的版本,从而使构建可复现。
应审查 Wrapper 升级,并在发行版校验和可用时验证该校验和。
常用命令包括:
sh
./gradlew tasks
./gradlew test
./gradlew build
./gradlew clean
./gradlew :service:test依赖项和任务 #
插件会添加配置和任务。例如,Java 插件提供
implementation、api(使用 java-library 时)、compileOnly、runtimeOnly
以及测试相关的配置。应优先使用范围最窄的配置:implementation 依赖项不会自动成为
使用者的编译类路径的一部分,而 API 依赖项会成为该公共契约的一部分。
Gradle 执行任务图。任务应声明其输入和输出,这样增量构建和构建缓存才能安全地跳过 已完成的工作。在配置阶段应避免执行未声明的文件或网络操作;应使用惰性 Provider 和任务动作。
使用版本目录、平台或依赖约束集中管理版本。在可复现性很重要时,锁定重要依赖项的版本,
并且不要将凭据提交到 gradle.properties;应通过环境变量、安全的 CI 密钥存储或被忽略的
本地文件提供凭据。
评论
在 GitHub 上阅读或评论(发表评论需要登录)