- 介绍
- 介绍 - 关于这本指南
- 概述
- 概述 - 特点
- 概述 - 为什么用 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插件
War插件
WAR插件扩展了Java插件,支持web应用组装成War文件.它默认禁用了Java插件JAR归档任务,并增加了一个默认的WAR归档任务。
25.1.使用
使用war插件需要在构建脚本下包括以下内容
例25.1.使用war插件
build.gradle
apply plugin 'war'
25.2.任务
War插件会添加下列任务到项目.
表25.1.War插件-任务
任务名 | 依赖 | 类型 | 描述 |
---|---|---|---|
war | compile | War | 组装应用程序War文件 |
War插件由Java插件添加下列依赖任务.
表25.2.War插件-附加的依赖任务
任务名 | 依赖 |
---|---|
assemble | war |
图25.1.War插件-任务
25.3.项目布局
表25.3.War插件-项目布局
文件夹 | 含义
———— | ———
src/main/webapp | Web应用资源
25.4.依赖管理
War插件增加了名为providedCompile和providedRuntime的两个依赖配置.这两个配置有相同的作用域在编译或者运行时的配置,不同之处在于是否会将war文件归档.很重要的一点是它们都会提供配置传递.比如在任意的provided配置中添加了commons-httpclient:commons-httpclient:3.0
,该依赖依赖于commons-codec
,因为这个一个”provided”的配置,意味着这两个依赖都不会被加入你的WAR中,即使commons-codec
库是一个显式的编译配置.如果不希望出现这种传递行为,commons-httpclient:commons-httpclient:3.0@jar
这样声明provided依赖即可.
25.5.公共配置
表25.4.War插件-目录配置
属性名称 | 类型 | 默认值 | 描述 |
---|---|---|---|
webAppDirName | String | src/main/webapp | 在项目目录的web应用的资源文件夹名 |
webAppDir | File (read-only) | projectDir/webAppDirName | Web应用的资源路径 |
这些属性由一个WarPluginConvention公共对象提供
25.6.War
War任务默认会把src/main/webapp
的内容复制到归档目录的根目录.webapp文件夹下会包含一个WEB-INF
子文件夹,里面可能会有一个web.xml文件.编译后的class文件会在WEB-INF/classes
下,所有runtime[13]的依赖配置会被拷贝至WEB-INF/lib
下.
API文档中有更多关于War的信息.
25.7.定制War
下面的例子中有一些重要的自定义选项
例25.2.定制War插件
build.gradle
configuration{
moreLibs
}
respositories{
faltDir {dirs "lib"}
mavenCentral()
}
dependencies{
compile module(":compile:1.0") {
dependency ":compile-transitive-1.0@jar"
dependency ":providedCompile-transitive:1.0@jar"
}
providedCompile "javax.servlet:servlet-api:2.5"
providedCompile module(":providedCompile:1.0") {
dependency ":providedCompile-transitive:1.0@jar"
}
runtime ":runtime:1.0"
providedRuntime ":providedRuntime:1.0@jar"
testCompile "junit:junit:4.12"
moreLibs ":otherLib:1.0"
}
war{
from 'src/rootContent' // 增加一个目录到归档根目录
webInf {from 'src/additionalWebInf'} // 增加一个目录到 WEB-INF 下
classpath fileTree('additionalLibs') // 增加一个目录到 WEB-INF/lib下.
classpath configurations.moreLibs // 增加更多地设置到 WEB-INF/lib 下.
webXml = file('src/someWeb.xml') // 复制xml文件到 WEB-INF/web.xml.
}
当然,可以用一个封闭的标签定义一个文件是否存打包到War文件中.
[13]runtime
配置将会继承compile
配置.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论