War 插件扩展了 Java 插件,增加了对组装 Web 应用程序 WAR 文件的支持。它禁用了 Java 插件的默认 JAR 存档生成,并添加了一个默认的 WAR 存档任务。
使用
要使用 War 插件,请在您的构建脚本中包含以下内容
示例 1. 使用 War 插件
build.gradle.kts
plugins {
war
}
build.gradle
plugins {
id 'war'
}
项目布局
除了标准 Java 项目布局,War 插件还添加了
src/main/webapp
-
Web 应用程序源
任务
War 插件添加并修改了以下任务
war
— War-
依赖于:
compile
组装应用程序 WAR 文件。
assemble
- 生命周期任务-
依赖于:
war
War 插件将以下依赖项添加到 Java 插件添加的任务中;

图 1. War 插件 - 任务
依赖管理
War 插件添加了两种依赖配置
providedCompile
-
此配置应用于编译时需要但由部署 WAR 的环境提供的依赖项。因此,在此处声明的依赖项对
main
和test
编译类路径可见。 providedRuntime
-
此配置应用于运行时需要但由部署 WAR 的环境提供的依赖项。在此处声明的依赖项仅对
main
和test
运行时类路径可见。
重要的是要注意,这些 假设您将 如果您不希望这种传递行为,只需将您的 |
发布
components.web
-
一个用于发布由
war
任务创建的生产 WAR 的 SoftwareComponent。
自定义
以下是包含最重要自定义选项的示例
示例 2. war 插件的自定义
build.gradle.kts
repositories {
mavenCentral()
}
dependencies {
providedCompile("javax.servlet:servlet-api:2.5")
}
tasks.war {
webAppDirectory = file("src/main/webapp")
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.
webXml = file("src/someWeb.xml") // copies a file to WEB-INF/web.xml
}
build.gradle
repositories {
mavenCentral()
}
dependencies {
providedCompile "javax.servlet:servlet-api:2.5"
}
war {
webAppDirectory = file('src/main/webapp')
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.
webXml = file('src/someWeb.xml') // copies a file to WEB-INF/web.xml
}
当然,可以使用闭包配置不同的文件集来定义排除和包含。