War 插件扩展了 Java 插件,以添加对组装 Web 应用程序 WAR 文件的支持。它禁用了 Java 插件的默认 JAR 存档生成,并添加了一个默认的 WAR 存档任务。
用法
要使用 War 插件,请在您的构建脚本中包含以下内容
plugins {
war
}
plugins {
id 'war'
}
项目布局
除了 标准 Java 项目布局 之外,War 插件还添加了
src/main/webapp
-
Web 应用程序源代码
任务
War 插件添加并修改了以下任务
war
— War-
依赖于:
compile
组装应用程序 WAR 文件。
assemble
- 生命周期任务-
依赖于:
war
War 插件将以下依赖项添加到 Java 插件添加的任务中;
依赖管理
War 插件添加了两个依赖配置
providedCompile
-
此配置应用于编译时所需的依赖项,但这些依赖项由 WAR 部署的环境提供。因此,在此声明的依赖项对
main
和test
编译类路径可见。 providedRuntime
-
此配置应用于运行时所需的依赖项,但这些依赖项由 WAR 部署的环境提供。在此声明的依赖项仅对
main
和test
运行时类路径可见。
重要的是要注意,这些 假设您将 如果您不希望这种传递行为,只需像 |
发布
components.web
-
一个 SoftwareComponent,用于 发布 由
war
任务创建的生产 WAR。
约定属性(已弃用)
webAppDirName
—String
-
默认值:
src/main/webapp
相对于项目目录的 Web 应用程序源目录的名称。
webAppDir
— (只读)File
-
默认值:
$webAppDirName
,例如 src/main/webappWeb 应用程序源目录的路径。
这些属性由 WarPluginConvention 对象提供。
通过约定属性配置 war 任务已弃用。如果您需要设置 war
任务的默认值,请直接配置该任务。如果您想配置项目中所有类型为 War
的任务,请使用 tasks.withType(War.class).configureEach(…)。
自定义
以下是一个包含最重要的自定义选项的示例
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
}
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
}
当然,可以使用闭包来配置不同的文件集,以定义排除和包含。