其他章节的翻译请参见:

http://blog.csdn.net/column/details/gradle-translation.html

翻译项目请关注Github上的地址:

https://github.com/msdx/gradledoc/tree/1.12。

直接浏览双语版的文档请访问:

http://gradledoc.qiniudn.com/1.12/userguide/userguide.html。

另外,Android 手机用户可通过我写的一个程序浏览文档,带缓存功能的,目前0.2版本兼容2.1以上(5.0没试过)的Android系统,地址如下:

http://www.wandoujia.com/apps/com.githang.gradledoc

翻译不易,转载请注明本文在CSDN博客上的出处:

http://blog.csdn.net/maosidiaoxian/article/details/45498125

关于我对Gradle的翻译,以Github上的项目及http://gradledoc.qiniudn.com 上的文档为准。如有发现翻译有误的地方,将首先在以上两个地方更新。因时间精力问题,博客中发表的译文基本不会同步修改。

第二十六章. War 插件

War 的插件继承自 Java 插件并添加了对组装 web 应用程序的 WAR 文件的支持。它禁用了 Java 插件生成默认的 JAR archive,并添加了一个默认的 WAR archive 任务。

26.1. 用法

要使用 War 的插件,请在构建脚本中包含以下语句:

示例 26.1. 使用War 插件

build.gradle

apply plugin: 'war'

26.2. 任务

War 插件向project 中添加了以下任务。

表 26.1. War 插件 - 任务

任务名称 依赖于 类型 描述
war compile War 组装应用程序 WAR 文件。

War 插件向 Java 插件所加入的 tasks 添加了以下的依赖。

表 26.2. War 插件 - 额外的task 依赖

任务名称 依赖于
assemble war

图 26.1. War 插件 - tasks


26.3. 项目布局

表 26.3. War 插件 - 项目布局

目录 意义
from
<s1>'src/main/webapp'</s1>
Web 应用程序源代码

26.4. 依赖管理

War 插件添加了两个依赖配置: providedCompileprovidedRuntime。虽然它们有各自的compileruntime配置,但这些配置有相同的作用域,只是它们不会添加到
WAR 文件中。要特别注意,这些provided配置的传递使用。假设你添加commons-httpclient:commons-httpclient:3.0依赖到任何一个provided配置。这个依赖又依赖于commons-codec。这意味着 httpclient 和 commons-codec 都不会添加到你的
WAR 中,即使 commons-codec 是 compile 配置上的一个显示依赖。如果你不想要这种传递行为,只是把provided依赖声明成和commons-httpclient:commons-httpclient:3.0@jar一样。

26.5. 公约属性

表26.4. War插件 ​​- 目录属性

属性名称 类型 默认值 描述
webAppDirName String from
<s1>'src/main/webapp'</s1>
web 应用程序源目录的名称,是一个相对于项目目录的目录名称。
webAppDir File (read-only) projectDir/webAppDirName Web 应用程序的源目录。

这些属性由一个WarPluginConvention公约对象提供。

26.6. War

War task 的默认行为是将src/main/webapp的内容复制到archive
的根目录下。你的webapp目录自然可能包含一个WEB-INF子目录,这个子目录可能还再包含一个web.xml文件。已编译的类被编译进WEB-INF/classes。所有runtime [13]配置的依赖被复制到WEB-INF/lib

另请参阅 War

26.7.
自定义

下面是一个示例,展示了最重要的自定义选项:

示例 26.2. war 插件的自定义

build.gradle

configurations {
   moreLibs
}

repositories {
   flatDir { 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.11'
}
    moreLibs ":otherLib:1.0"
}

war {
    from 'src/rootContent' // adds a file-set to the root of the archive
    webInf { from 'src/additionalWebInf' } // adds a file-set to the WEB-INF dir.
    classpath fileTree('additionalLibs') // adds a file-set to the WEB-INF/lib dir.
    classpath configurations.moreLibs // adds a configuration to the WEB-INF/lib dir.
    webXml = file('src/someWeb.xml') // copies a file to WEB-INF/web.xml
}

当然,你可以用一个定义了excludes 和 includes 的闭包来配置不同的文件集。


[13]runtime配置继承自compile配置。

Gradle 1.12用户指南翻译——第二十六章. War 插件的更多相关文章

  1. Gradle 1.12用户指南翻译——第二十九章. Checkstyle 插件

    其他章节的翻译请参见: http://blog.csdn.net/column/details/gradle-translation.html 翻译项目请关注Github上的地址: https://g ...

  2. Gradle 1.12用户指南翻译——第二十五章. Scala 插件

    其他章节的翻译请参见: http://blog.csdn.net/column/details/gradle-translation.html 翻译项目请关注Github上的地址: https://g ...

  3. Gradle 1.12用户指南翻译——第二十四章. Groovy 插件

    其他章节的翻译请参见: http://blog.csdn.net/column/details/gradle-translation.html 翻译项目请关注Github上的地址: https://g ...

  4. Gradle 1.12用户指南翻译——第二十二章. 标准的 Gradle 插件

    其他章节的翻译请参见: http://blog.csdn.net/column/details/gradle-translation.html 翻译项目请关注Github上的地址: https://g ...

  5. Gradle 1.12用户指南翻译——第二十八章. Jetty 插件

    其他章节的翻译请参见: http://blog.csdn.net/column/details/gradle-translation.html 翻译项目请关注Github上的地址: https://g ...

  6. Gradle 1.12用户指南翻译——第五十三章. 签名插件

    其他章节的翻译请参见:http://blog.csdn.net/column/details/gradle-translation.html翻译项目请关注Github上的地址:https://gith ...

  7. Gradle 1.12用户指南翻译——第三十一章. FindBugs 插件

    其他章节的翻译请参见: http://blog.csdn.net/column/details/gradle-translation.html 翻译项目请关注Github上的地址: https://g ...

  8. Gradle 1.12用户指南翻译——第三十七章. OSGi 插件

    本文由CSDN博客万一博主翻译,其他章节的翻译请参见: http://blog.csdn.net/column/details/gradle-translation.html 翻译项目请关注Githu ...

  9. Gradle 1.12用户指南翻译——第三十三章. PMD 插件

    本文由CSDN博客万一博主翻译,其他章节的翻译请参见: http://blog.csdn.net/column/details/gradle-translation.html 翻译项目请关注Githu ...

随机推荐

  1. Android简易实战教程--第四十七话《使用OKhttp回调方式获取网络信息》

    在之前的小案例中写过一篇使用HttpUrlConnection获取网络数据的例子.在OKhttp盛行的时代,当然要学会怎么使用它,本篇就对其基本使用做一个介绍,然后再使用它的接口回调的方式获取相同的数 ...

  2. 【SSH系列】一步步深入springmvc+商品列表查询demo

    在前面的博文中,小编主要简单的介绍springmvc的体系结构.mvc模式的优缺点以及mvc框架,今天我们来继续学习springmvc的相关知识,在这篇博文中,小编讲解过springmvc的体系结构, ...

  3. [系统运维]Supervisord安装和启动程序

    supervisord 是client/server 系统 把不是守护进程的进程变成守护进程 监控它自己启动的进程,类似于看门狗 可以作为开机启动的一种封装 可以精确控制进程的状态,而不是pidfil ...

  4. Android Multimedia框架总结(十八)Camera2框架从Java层到C++层类关系

    Agenda: getSystemService(Context.CAMERA_SERVICE) CameraManager.getCameraIdList() ICameraService.aidl ...

  5. OpenCV + Python 人脸检测

    必备知识 Haar-like opencv api 读取图片 灰度转换 画图 显示图像 获取人脸识别训练数据 探测人脸 处理人脸探测的结果 实例 图片素材 人脸检测代码 人脸检测结果 总结 下午的时候 ...

  6. 27 自定义View 和案例

    有时安卓提供的View不满足我们的需求时可以创建一个类继承View或其子类重写方法 如 package com.qf.sxy.day28_customview.view; import android ...

  7. Hibernate系列学习之(二) 多对一、一对一、一对多、多对多的配置方法

    这是近期做案件录入.java项目中体会的几点:项目理解很是深刻,和大家共勉! hihernate一对多关联映射(单向Classes----->Student) 一对多关联映射利用了多对一关联映射 ...

  8. iOS中 Realm的学习与使用 韩俊强的博客

    每日更新关注:http://weibo.com/hanjunqiang  新浪微博! 有问题或技术交流可以咨询!欢迎加入! 这篇直接搬了一份官方文档过来看的 由于之前没用markdown搞的乱七八糟的 ...

  9. Maven创建EJB

    开发工具: eclipse mars wildfly jdk8 maven 右键新建project,选择other 勾选create simple project 填写信息(自行填写),完成后右键项目 ...

  10. Android的搜索框SearchView的用法-android学习之旅(三十九)

    SearchView简介 SearchView是搜索框组件,他可以让用户搜索文字,然后显示.' 代码示例 这个示例加了衣蛾ListView用于为SearchView增加自动补全的功能. package ...