在Java Web应用中,一个WAR文件被用来绑定Web组件、编译class文件、部署描述文件、HTML、JS、CSS等资源文件。
Gradle提供插件用来组装WAR文件和将web应用部署到本地Servlet容器。
war插件
war插件扩展自java插件,因此在build.gradle中可以不使用java插件。
apply plugin: 'war'
war插件提供web应用默认约定的源代码目录是src/main/webapp
由于实现Web应用所需要的类并不是Java标准版本,如javax.servlet.HttpServlet,因此,需要在构建之前确保声明外部依赖
dependencies {
providedCompile 'javax.servlet:servlet-api:2.5',
'javax.servlet.jsp:jsp-api:2.1'
runtime 'javax.servlet:jstl:1.1.2',
'taglibs:standard:1.1.2'
}
运行gradle build
组装的war文件可以在build/libs
目录找到。
自定义项目结构
webAppDirName = 'webfiles'
war {
from 'static'
}
War插件的webAppDirName属性默认值是src/main/webapp
,上面配置是webfiles。
通过from方法可以选择性的将需要的目录添加到WAR文件。
嵌入式web容器
应用jetty插件
apply plugin: 'jetty'
运行web应用应使用jettyRun任务
gradle jettyRun
jetty插件运行一个web应用的默认端口是8080,上下文是项目名称。
当然也可以定制jetty插件
jettyRun {
httpPort = 9090
contextPath = 'todo'
}