W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
WAR插件擴(kuò)展了Java插件,支持web應(yīng)用組裝成War文件.它默認(rèn)禁用了Java插件JAR歸檔任務(wù),并增加了一個(gè)默認(rèn)的WAR歸檔任務(wù)。
使用war插件需要在構(gòu)建腳本下包括以下內(nèi)容
例25.1.使用war插件
build.gradle
apply plugin 'war'
War插件會(huì)添加下列任務(wù)到項(xiàng)目.
表25.1.War插件-任務(wù)
任務(wù)名 | 依賴 | 類型 | 描述 |
---|---|---|---|
war | compile | War | 組裝應(yīng)用程序War文件 |
War插件由Java插件添加下列依賴任務(wù).
表25.2.War插件-附加的依賴任務(wù)
任務(wù)名 | 依賴 |
---|---|
assemble | war |
圖25.1.War插件-任務(wù)
表25.3.War插件-項(xiàng)目布局 文件夾 | 含義 -------- | ------ src/main/webapp | Web應(yīng)用資源
War插件增加了名為providedCompile和providedRuntime的兩個(gè)依賴配置.這兩個(gè)配置有相同的作用域在編譯或者運(yùn)行時(shí)的配置,不同之處在于是否會(huì)將war文件歸檔.很重要的一點(diǎn)是它們都會(huì)提供配置傳遞.比如在任意的provided配置中添加了commons-httpclient:commons-httpclient:3.0,該依賴依賴于commons-codec,因?yàn)檫@個(gè)一個(gè)"provided"的配置,意味著這兩個(gè)依賴都不會(huì)被加入你的WAR中,即使commons-codec庫(kù)是一個(gè)顯式的編譯配置.如果不希望出現(xiàn)這種傳遞行為,commons-httpclient:commons-httpclient:3.0@jar這樣聲明provided依賴即可.
表25.4.War插件-目錄配置
屬性名稱 | 類型 | 默認(rèn)值 | 描述 |
---|---|---|---|
webAppDirName | String | src/main/webapp | 在項(xiàng)目目錄的web應(yīng)用的資源文件夾名 |
webAppDir | File (read-only) | projectDir/webAppDirName | Web應(yīng)用的資源路徑 |
這些屬性由一個(gè)WarPluginConvention公共對(duì)象提供
War任務(wù)默認(rèn)會(huì)把src/main/webapp的內(nèi)容復(fù)制到歸檔目錄的根目錄.webapp文件夾下會(huì)包含一個(gè)WEB-INF子文件夾,里面可能會(huì)有一個(gè)web.xml文件.編譯后的class文件會(huì)在WEB-INF/classes下,所有runtime[13]的依賴配置會(huì)被拷貝至WEB-INF/lib下.
API文檔中有更多關(guān)于War的信息.
下面的例子中有一些重要的自定義選項(xiàng)
例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' // 增加一個(gè)目錄到歸檔根目錄
webInf {from 'src/additionalWebInf'} // 增加一個(gè)目錄到 WEB-INF 下
classpath fileTree('additionalLibs') // 增加一個(gè)目錄到 WEB-INF/lib下.
classpath configurations.moreLibs // 增加更多地設(shè)置到 WEB-INF/lib 下.
webXml = file('src/someWeb.xml') // 復(fù)制xml文件到 WEB-INF/web.xml.
}
當(dāng)然,可以用一個(gè)封閉的標(biāo)簽定義一個(gè)文件是否存打包到War文件中.
[13]runtime配置將會(huì)繼承compile配置.
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: