在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'
}

results matching ""

    No results matching ""