• Gradle入门(6):创建Web应用项目


    如果要用 Java 和 Gradle 创建一个 Web 应用项目,我们首先需要创建一个 Java 项目,下面来看看该如何去做。

    创建Java项目

    我们可以使用Java插件创建一个Java项目,通过添加以下代码行到build.gradle文件中即可。

    apply plugin: 'java'

    我们继续探索如何打包Web应用。

    打包Web应用

    在我们使用War插件打包Web应用前,需要将其加入到构建中。在应用了War插件后,build.gradle文件如下:

    apply plugin: 'java'
    apply plugin: 'war'

    War插件在项目的目录布局下添加了一个新的目录,加入了两个新的依赖管理配置项,以及在项目中添加了一个新的任务。这些变化的详细描述如下:

      • War插件在项目的目录布局下添加了src/main/webapp目录,这个目录包含Web应用的源文件(CSS文件、Javascript文件、JSP文件等)。
      • War插件加入了两个新的依赖管理配置项providedCompile 和 providedRuntime.,这两个配置项与compile 和 runtime 配置项的作用域相同,但是区别是这两个配置项所属的依赖不会被添加到WAR文件中。
      • War插件也会在应用项目中添加war任务,这个任务会将WAR文件置于build/libs目录中。

    即便War插件在项目的目录布局下添加了src/main/webapp目录,但它实际上并没有被真正创建。如果我们需要这个目录,那就必须自己来创建。

    现在,我们可以在命令提示符下,通过gradle war命令打包Web应用。此时此刻,我们可以看到如下输出:

    wuchao@wuchao-PC:~/workspace/GradleWorkSpace/javaweb$ gradle war
    Picked up _JAVA_OPTIONS:   -Dawt.useSystemAAFontSettings=gasp
    :compileJava
    :processResources
    :classes
    :war
    
    BUILD SUCCESSFUL
    
    Total time: 1.038 secs

     如果一切顺利,我们应该可以在build/libs目录下找到web-application.war文件。

    扩展阅读:如果你需要关于War插件或war任务的更多信息,或者是,你想要覆盖War插件或war任务的默认配置,你可以多多关注以下网页:

    运行Web应用

    我们可以使用Gretty在开发环境中运行Web应用,它支持Jetty和Tomcat,它也不会被Gradle缺少SLF4J绑定所导致的问题所困扰。我们继续进行配置构建并使用Gretty运行Web应用。

    首先,必须配置构建脚本的依赖。可以通过以下步骤完成:

    1. 使用Bintray的JCenter Maven仓库配置构建脚本,进行依赖解析。

    2. 将Gretty插件的依赖加入到构建脚本的classpath中。

    扩展阅读:如果你想了解更多关于在已经打包为jar的文件上使用的二进制插件的技巧,你可以阅读Gradle用户手册的以下章节:

    第二步,应用Gretty插件。做完这一步后,build.gradle文件如下:

    buildscript {
        repositories {
            jcenter()
        }
        dependencies {
            classpath 'org.akhikhl.gretty:gretty:+'
        }
    }
    
    apply plugin: 'java'
    apply plugin: 'war'
    apply plugin: 'org.akhikhl.gretty'
    

    第三步,按照以下步骤配置Gretty:

      1. 配置Gretty,当运行Web应用时,使用Jetty 9作为servlet容器。
      2. 配置Jetty,监听8080端口。
      3. 配置Jetty,使用上下文路径’/’运行Web应用。

    build.gradle文件的源代码如下:

    buildscript {
        repositories {
            jcenter()
        }
        dependencies {
            classpath 'org.akhikhl.gretty:gretty:+'
        }
    }
    
    apply plugin: 'java'
    apply plugin: 'war'
    apply plugin: 'org.akhikhl.gretty'
    
    gretty {
        port = 8080
        contextPath = '/'
        servletContainer = 'jetty9'
    }

    扩展阅读:如果你想了解关于Gretty的更多内容,可以仔细看一下以下文档:

    现在,我们可以通过在命令提示符下运行以下命令,开启或终止我们的Web应用:

      • gradle appStart命令能运行Web应用。
      • gradle appStop命令能终止Web应用。
  • 相关阅读:
    【实战】一次简单的js接口漏洞挖掘
    【实战】Location 302跳转 + CRLF 场景下的XSS
    【实战】权限绕过小结
    【实战】简单的API接口FUZZ小案例
    【实战】一次有趣的逻辑漏洞挖掘
    【实战】一个简单的SQL注入绕过
    【实战】springboot actuator未授权访问之trace接口泄漏敏感信息
    【实战】springboot actuator未授权访问之heapdump敏感信息提取
    层次分析法AHP
    pyppeteer(1)
  • 原文地址:https://www.cnblogs.com/wuchaodzxx/p/7085628.html
Copyright © 2020-2023  润新知