跳转到内容
主菜单
主菜单
移至侧栏
隐藏
导航
首页
最近更改
随机页面
MediaWiki帮助
代码酷
搜索
搜索
中文(中国大陆)
外观
创建账号
登录
个人工具
创建账号
登录
未登录编辑者的页面
了解详情
贡献
讨论
编辑“︁
Gradle
”︁
页面
讨论
大陆简体
阅读
编辑
编辑源代码
查看历史
工具
工具
移至侧栏
隐藏
操作
阅读
编辑
编辑源代码
查看历史
常规
链入页面
相关更改
特殊页面
页面信息
外观
移至侧栏
隐藏
您的更改会在有权核准的用户核准后向读者展示。
警告:
您没有登录。如果您进行任何编辑,您的IP地址会公开展示。如果您
登录
或
创建账号
,您的编辑会以您的用户名署名,此外还有其他益处。
反垃圾检查。
不要
加入这个!
{{NoteTA |G1=IT |G2=Software }} '''Gradle''' 是一个基于[[Apache Ant]]和[[Apache Maven]]概念的项目自动化构建工具,使用基于[[Groovy]]的特定领域语言(DSL)来声明项目配置。它支持多种编程语言的项目构建,特别是[[Java]]、[[Kotlin]]、[[Groovy]]、[[Scala]]和[[C++]]等。 == 概述 == Gradle于2007年由Hans Dockter等人创建,旨在克服传统构建工具的局限性。其主要特点包括: * 基于任务的依赖关系模型 * 增量构建功能 * 多项目构建支持 * 强大的依赖管理 * 灵活的构建脚本(使用Groovy或Kotlin DSL) * 丰富的插件生态系统 在[[Android]]开发中,Gradle自2013年起成为官方推荐的构建工具,取代了之前的[[Ant]]构建系统。 == 核心概念 == === 构建脚本 === Gradle使用构建脚本(通常为<code>build.gradle</code>)来定义项目和任务: <syntaxhighlight lang="groovy"> // 构建脚本示例 plugins { id 'java' // 应用Java插件 } repositories { mavenCentral() // 使用Maven中央仓库 } dependencies { implementation 'org.apache.commons:commons-lang3:3.12.0' // 添加依赖 } task hello { doLast { println 'Hello, Gradle!' // 自定义任务 } } </syntaxhighlight> === 构建生命周期 === Gradle构建分为三个阶段: 1. 初始化阶段:确定哪些项目参与构建 2. 配置阶段:执行构建脚本,构建任务图 3. 执行阶段:运行指定的任务 === 依赖管理 === Gradle支持多种依赖配置: * <code>implementation</code>:编译时依赖 * <code>compileOnly</code>:仅编译时使用 * <code>runtimeOnly</code>:仅运行时使用 * <code>testImplementation</code>:测试依赖 == 在Android中的应用 == Android项目通常包含两个Gradle文件: 1. 项目级<code>build.gradle</code>: <syntaxhighlight lang="groovy"> // 顶层构建文件 buildscript { repositories { google() mavenCentral() } dependencies { classpath 'com.android.tools.build:gradle:7.2.1' // Android Gradle插件 } } </syntaxhighlight> 2. 模块级<code>build.gradle</code>: <syntaxhighlight lang="groovy"> plugins { id 'com.android.application' // 应用Android应用插件 } android { compileSdk 32 defaultConfig { applicationId "com.example.myapp" minSdk 21 targetSdk 32 versionCode 1 versionName "1.0" } } dependencies { implementation 'androidx.appcompat:appcompat:1.4.2' } </syntaxhighlight> == 优势与比较 == {| class="wikitable" |+ 构建工具比较 ! 特性 !! Gradle !! Maven !! Ant |- | 构建脚本语言 || Groovy/Kotlin DSL || XML || XML |- | 性能 || 高(增量构建) || 中等 || 低 |- | 依赖管理 || 强 || 强 || 弱 |- | 灵活性 || 高 || 中等 || 高 |} == 实际案例 == === 多模块项目构建 === 大型项目通常分为多个模块,Gradle可以高效管理: <mermaid> graph TD A[根项目] --> B[核心模块] A --> C[Android应用模块] A --> D[测试模块] B --> E[共享库] </mermaid> 对应的<code>settings.gradle</code>配置: <syntaxhighlight lang="groovy"> include ':app', ':core', ':testing' </syntaxhighlight> === 自定义构建变体 === Android开发中可定义不同构建变体: <syntaxhighlight lang="groovy"> android { flavorDimensions "version" productFlavors { free { dimension "version" applicationIdSuffix ".free" } pro { dimension "version" applicationIdSuffix ".pro" } } } </syntaxhighlight> == 参见 == * [[Android Studio]] * [[Maven]] * [[Ant]] * [[Groovy]] * [[Kotlin]] == 参考资料 == {{Reflist}} [[Category:构建工具]] [[Category:软件开发工具]] [[Category:Android开发]]
摘要:
请注意,所有对代码酷的贡献均被视为依照知识共享署名-非商业性使用-相同方式共享发表(详情请见
代码酷:著作权
)。如果您不希望您的文字作品被随意编辑和分发传播,请不要在此提交。
您同时也向我们承诺,您提交的内容为您自己所创作,或是复制自公共领域或类似自由来源。
未经许可,请勿提交受著作权保护的作品!
取消
编辑帮助
(在新窗口中打开)
该页面使用的模板:
模板:Main other
(
编辑
)
模板:NoteTA
(
编辑
)
模板:Reflist
(
编辑
)
模板:Reflist/styles.css
(
编辑
)
模块:Check for unknown parameters
(
编辑
)
模块:Crc32lua
(
编辑
)
模块:NoteTA
(
编辑
)
模块:WikitextLC
(
编辑
)