- 介绍
- 介绍 - 关于这本指南
- 概述
- 概述 - 特点
- 概述 - 为什么用 Groovy?
- 教程
- 安装Gradle
- 安装Gradle - 准备阶段
- 安装Gradle - 下载与安装
- 安装Gradle - JVM选项
- 排除故障
- 构建脚本基础
- 构建脚本基础 - Projects 和 tasks
- 构建脚本基础 - Hello world
- 构建脚本基础 - 快捷的任务定义
- 构建脚本基础 - 构建脚本代码
- 构建脚本基础 - 任务依赖
- 构建脚本基础 - 动态任务
- 构建脚本基础 - 使用已经存在的任务
- 构建脚本基础 - 短标记法
- 构建脚本基础 - 自定义任务属性
- 构建脚本基础 - 调用 Ant 任务
- 构建脚本基础 - 使用方法
- 构建脚本基础 - 默认任务
- 构建脚本基础 - 通过 DAG 配置
- Java 构建入门
- Java 构建入门 - Java 插件
- Java 构建入门 - 一个基础的 Java 项目
- 一个基础的 Java 项目 - 建立项目
- 一个基础的 Java 项目 - 外部的依赖
- 一个基础的 Java 项目 - 定制项目
- 一个基础的 Java 项目 - 发布 JAR 文件
- 一个基础的 Java 项目 - 创建 Eclipse 项目
- 一个基础的 Java 项目 - 总结
- Java 构建入门 - 多项目的 Java 构建
- 多项目的 Java 构建 - 定义一个多项目构建
- 多项目的 Java 构建 - 通用配置
- 多项目的 Java 构建 - 项目之间的依赖
- 多项目的 Java 构建 - 创建一个发行版本
- 依赖管理的基础知识
- 依赖管理的基础知识 - 什么是依赖管理
- 依赖管理的基础知识 - 声明你的依赖
- 依赖管理的基础知识 - 依赖配置
- 依赖管理的基础知识 - 外部的依赖
- 依赖管理的基础知识 - 仓库
- 依赖管理的基础知识 - 发布 artifacts
- 依赖管理的基础知识 - 下一步?
- Groovy 快速入门
- Groovy 快速入门 - 一个基本的 Groovy 项目
- Groovy 快速入门 - 总结
- 网页应用快速入门
- 网页应用快速入门 - 构建一个 WAR 文件
- 网页应用快速入门 - 运行 Web 应用
- 网页应用快速入门 - 总结
- 使用 Gradle 命令行
- 使用 Gradle 命令行 - 多任务调用
- 使用 Gradle 命令行 - 排除任务
- 使用 Gradle 命令行 - 失败后继续执行构建
- 使用 Gradle 命令行 - 简化任务名
- 使用 Gradle 命令行 - 选择文件构建
- 使用 Gradle 命令行 - 获取构建信息
- 获取构建信息 - 项目列表
- 获取构建信息 - 任务列表
- 获取构建信息 - 获取任务具体信息
- 获取构建信息 - 获取依赖列表
- 获取构建信息 - 查看特定依赖
- 获取构建信息 - 获取项目属性列表
- 获取构建信息 - 构建日志
- 使用 Gradle 图形界面
- 使用 Gradle 图形界面 - 任务树
- 使用 Gradle 图形界面 - 收藏夹
- 使用 Gradle 图形界面 - 命令行
- 使用 Gradle 图形界面 - 设置
- 编写构建脚本 - Gradle 构建语言
- 编写构建脚本 - 项目 API
- 项目 API - 标准项目属性
- 编写构建脚本 - 脚本 API
- 编写构建脚本 - 声明变量
- 声明变量 - 局部变量
- 声明变量 - 扩展属性
- 编写构建脚本 - Groovy 基础
- Groovy 基础 - Groovy JDK
- Groovy 基础 - 属性存取器
- Groovy 基础 - 可有可无的圆括号
- Groovy 基础 - List 和 Map 集合
- Groovy 基础 - 闭合作为方法的最后一个参数
- Groovy 基础 - 闭合委托对象
- 深入了解 Tasks
- 深入了解 Tasks - 定义 tasks
- 深入了解 Tasks - 定位 tasks
- 深入了解 Tasks - 配置 tasks
- 深入了解 Tasks - 给 task 加入依赖
- 深入了解 Tasks - 给 tasks 排序
- 深入了解 Tasks - 给 task 加入描述
- 深入了解 Tasks - 替换 tasks
- 深入了解 Tasks - 跳过 tasks
- 深入了解 Tasks - 跳过 up-to-date 的任务
- 深入了解 Tasks - Task 规则
- 深入了解 Tasks - 终止 tasks
- 深入了解 Tasks - 补充
- 补充 - Gradle 属性 和 system 属性
- 补充 - 使用其他的脚本配置项目
- 补充 - 使用其他的脚本配置任意对象
- 补充 - 配置任意对象
- 补充 - 缓存
- 文件操作
- 文件操作 - 定位文件
- 文件操作 - 文件集合
- 文件操作 - 文件树
- 文件操作 - 使用一个归档文件的内容作为文件树
- 文件操作 - 指定一组输入文件
- 文件操作 - 复制文件
- 文件操作 - 使用同步任务
- 文件操作 - 创建归档文件
- 使用 Ant 插件
- 使用 Ant 插件 - 使用 Ant 任务和 Ant 类型的构建
- 使用 Ant 任务和 Ant 类型的构建 - 在构建中使用自定义 Ant 任务
- 使用 Ant 插件 - 导入一个 Ant 构建
- 使用 Ant 插件 - Ant 的属性与引用
- 使用 Ant 插件 - API
- Logging
- Logging - 选择日志等级
- Logging - 编写自己的日志信息
- Logging - 外部工具和库的log
- Logging - 改变 Gradle 记录的内容
- Gradle的守护进程
- Gradle的守护进程 - 什么是Gradle的守护进程
- Gradle的守护进程 - 管理和配置
- 管理和配置 - 如何启用的摇篮守护进程
- 管理和配置 - 如何禁用Gradle的守护进程
- 管理和配置 - 怎样抑制“please consider using the Gradle Daemon”消息
- 管理和配置 - 为什么会在机器上出现不只一个守护进程
- 管理和配置 - 守护进程占用多大内存并且能不能给它更大的内存?
- 管理和配置 - 如何停止守护进程
- 管理和配置 - 守护进程何时会出错
- Gradle的守护进程 - 什么时候使用Gradle守护进程
- Gradle的守护进程 - 工具和集成开发环境
- Gradle的守护进程 - 摇篮守护进程如何使构建速度更快
- 摇篮守护进程如何使构建速度更快 - 未来可能的改进
- Gradle Plugins
- Gradle Plugins - 插件的作用
- Gradle Plugins - 插件的类型
- Gradle Plugins - 应用插件
- 应用插件 - 脚本插件
- 应用插件 - 二进制插件
- 二进制插件 - 二进制插件的位置
- Gradle Plugins - 使用构建脚本块应用插件
- Gradle Plugins - 使用插件的插件DSL
- 使用插件的插件DSL - 插件DSL的限制
- 使用插件的插件DSL - 约束语法
- 使用插件的插件DSL - 只能在构建脚本中使用
- 使用插件的插件DSL - 不能与subjects{},allprojects{}等结合使用
- Gradle Plugins - 查找社区插件
- Gradle Plugins - 更多关于插件
- Gradle插件规范
- Gradle插件规范 - 语言插件
- Gradle插件规范 - 孵化中的语言插件
- Gradle插件规范 - 集成插件
- Gradle插件规范 - 孵化中的集成插件
- Gradle插件规范 - 软件开发插件
- Gradle插件规范 - 孵化中的软件开发插件
- Gradle插件规范 - 基础插件
- Gradle插件规范 - 第三方插件
- Java 插件
- Java 插件 - 使用
- Java 插件 - 资源集
- Java 插件 - 任务
- Java 插件 - 项目布局
- Java 插件 - 依赖管理
- Java 插件 - 公共配置
- Java 插件 - 使用资源集工作
- 使用资源集工作 - 资源集属性
- 使用资源集工作 - 定义新的资源集
- 使用资源集工作 - 资源集例子
- Java 插件 - Javadoc
- Java 插件 - 清除
- Java 插件 - 资源
- Java 插件 - 编译 Java
- Java 插件 - 增量 Java 编译
- Java 插件 - 测试
- 测试 - 测试执行
- 测试 - 测试调试
- 测试 - 测试过滤
- 测试 - 通过系统属性执行单独测试
- 测试 - 测试检测
- 测试 - 测试分组
- 测试 - 测试报告
- 测试报告 - TestNG 的参数化方法和报告
- 测试 - 公共值
- Java 插件 - Jar
- Jar - Manifest
- Java 插件 - 上传
- War插件
- War插件 - 使用
- War插件 - 任务
- War插件 - 项目布局
- War插件 - 依赖管理
- War插件 - 公共配置
- War插件 - War
- War插件 - 定制War
- Ear插件
文件操作 - 创建归档文件
一个项目可以有很多 JAR 文件,你可以向项目中添加 WAR , ZIP 和 TAR 文档,使用归档任务可以创建这些文档: Zip , Tar , Jar , War 和Ear. 它门都以同样的机制工作.
例 15.19 创建一个 ZIP 文档
build.gradle
apply plugin: 'java'
task zip(type: Zip) {
from 'src/dist'
into('libs') {
from configurations.runtime
}
}
所有的归档任务的工作机制和复制任务相同,它们都实现了 CopySpec
接口,和 Copy
任务一样,使用 from()
方法指定输入文件,可以选择性的使用 into()
方法指定什么时候结束.你还可以过滤文件内容,重命名文件等等,就如同使用复制规则一样.
重命名文档
projectName-vsersion.type
格式可以被用来生成文档名,例如:
例 15.20 创建压缩文档
build.gradle
apply plugin: 'java'
version = 1.0
task myZip(type: Zip) {
from 'somedir'
}
println myZip.archiveName
println relativePath(myZip.destinationDir)
println relativePath(myZip.archivePath)
使用 gradle -q myZip
命令进行输出:
> gradle -q myZip
zipProject-1.0.zip
build/distributions
build/distributions/zipProject-1.0.zip
上面例子使用一个名为 myZip的 Zip 归档任务生成名称为 zipProject-1.0.zip 的 ZIP 文档,区分文档任务名和最终生成的文档名非常的重要
可以通过设置项目属性 archivesBaseName
的值来 修改生成文档的默认名.当然,文档的名称也可以通过其他方法随时更改.
归档任务中有些属性可以配置,如表 15.1 所示:
表 15.1 归档任务-属性名
属性名 | 类型 | 默认值 | 描述 |
---|---|---|---|
archiveName | String | baseName-appendix-version-classifier.extension,如果其中任何一个都是空的,则不添加名称 | 归档文件的基本文件名 |
archivePath | File | destinationDir/archiveName | 生成归档文件的绝对路径。 |
destinationDir | File | 取决于文档类型, JAR 和 WAR 使用project.buildDir/distributions. project.buildDir/libraries.ZIP 和 TAR | 归档文件的目录 |
baseName | String | project.name | 归档文件名的基础部分。 |
appendix | String | null | 归档文件名的附加部分。 |
version | String | project.version | 归档文件名的版本部分。 |
classifier | String | null | 归档文件名的分类部分 |
extension | String | 取决于文档类型和压缩类型: zip, jar, war, tar, tgz 或者 tbz2. | 归档文件的扩展名 |
例 15.21 配置归档文件-自定义文档名
build.gradle
apply plugin: 'java'
version = 1.0
task myZip(type: Zip) {
from 'somedir'
baseName = 'customName'
}
println myZip.archiveName
使用 gradle -q myZip
命令进行输出:
> gradle -q myZip
customName-1.0.zip
更多配置:
例 15.22 配置归档任务- 附加其他后缀
build.gradle
apply plugin: 'java'
archivesBaseName = 'gradle'
version = 1.0
task myZip(type: Zip) {
appendix = 'wrapper'
classifier = 'src'
from 'somedir'
}
println myZip.archiveName
使用 gradle -q myZip
命令进行输出:
> gradle -q myZip
gradle-wrapper-1.0-src.zip
多个文档共享内容
你可以使用 Project.copySpec()
在不用归档文件间共享内容.
如果你想发布一个文档,然后在另一个项目中使用,这部分将在第 53 章 发布文档 中讲述.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论