在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 教程/ 物聯(lián)網(wǎng)/ War 插件
問題反饋
Gradle 插件
Scala 插件
Gradle 命令行的基本使用
任務詳述
安裝
概述
教程-雜七雜八
構建環(huán)境
依賴管理基礎
使用 Gradle 圖形用戶界面
使用文件
CodeNarc 插件
Sonar 插件
Groovy 插件
Sonar Runner 插件
OSGi 插件
Ear 插件
Gradle 守護進程
Java 插件
簡介
構建基礎
FindBugs 插件
Groovy 快速入門
JaCoCo 插件
PMD 插件
War 插件
Checkstyle 插件
日志
Java 構建入門
Jetty 插件
從 Gradle 中調(diào)用 Ant
標準的 Gradle 插件
Web 工程構建
JDepend 插件
編寫構建腳本

War 插件

War 的插件繼承自 Java 插件并添加了對組裝 web 應用程序的 WAR 文件的支持。它禁用了 Java 插件生成默認的 JAR archive,并添加了一個默認的 WAR archive 任務。

用法

要使用 War 的插件,請在構建腳本中包含以下語句:

使用 War 插件

build.gradle

apply plugin: 'war'  

任務

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

表 26.1. War 插件 - 任務

任務名稱 依賴于 類型 描述
war compile War 組裝應用程序 WAR 文件。

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

表 26.2. War 插件 - 額外的 task 依賴

任務名稱 依賴于
assemble war

圖 26.1. War 插件 - tasks

http://wiki.jikexueyuan.com/project/gradle/images/05.png" alt="" />

項目布局

表 26.3. War 插件 - 項目布局

目錄 意義
from <s1>'src/main/webapp'</s1> Web 應用程序源代碼

依賴管理

War 插件添加了兩個依賴配置: providedCompile 和 providedRuntime。雖然它們有各自的compile 和 runtime 配置,但這些配置有相同的作用域,只是它們不會添加到 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.4. War 插件 ??- 目錄屬性

屬性名稱 類型 默認值 描述
webAppDirName String from <s1>'src/main/webapp'</s1> web 應用程序源目錄的名稱,是一個相對于項目目錄的目錄名稱。
webAppDir File?(read-only) webAppDirName Web 應用程序的源目錄。

這些屬性由一個 WarPluginConvention 公約對象提供。

War

War task 的默認行為是將 src/main/webapp 的內(nèi)容復制到 archive 的根目錄下。你的 webapp 目錄自然可能包含一個 WEB-INF 子目錄,這個子目錄可能還再包含一個 web.xml 文件。已編譯的類被編譯進 WEB-INF/classes。所有 runtime 配置的依賴被復制到 WEB-INF/lib。

自定義

下面是一個示例,展示了最重要的自定義選項:

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 的閉包來配置不同的文件集。