Gradle Java Web应用程序并在Tomcat上运行

Posted qiuri2008

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Gradle Java Web应用程序并在Tomcat上运行相关的知识,希望对你有一定的参考价值。

1- 创建Gradle工程

打开 Eclipse ,在菜单中找到 File -> New -> Other…,在打开界面中选择 Gradle Project,如下图中所示 -

技术分享图片

点击下一步(Next),如下图中所示,并继续点击下一步(Next) -

技术分享图片

在新打开的界面中输入项目代码的名称,这里我们创建一个名称为 GradleWebApp 如下图所示-

技术分享图片

在新打开界面中,选择 Gradle 的安装目录,如下图中所示,并继续点击下一步(Next)-

技术分享图片

构建完成后,点击完成(Finish)即可,界面提示如下 -

技术分享图片

项目创建完成后,它的一个初始结构如下图中所示:

技术分享图片

2- 配置Gradle

这是Eclipse所创建的build.gradle文件的默认内容,这里我们删除所有注释:

apply plugin: ‘java‘

repositories {
   jcenter()
}

dependencies {

   compile ‘org.slf4j:slf4j-api:1.7.21‘

   testCompile ‘junit:junit:4.12‘

}
Groovy

接下来需要将应用程序的配置添加“WEB应用程序”。并且可以让这个项目可直接在 Eclipse+Tomcat 插件上运行。修改build.gradle文件的添加一些代码内容,如下所示 -

apply plugin: ‘java‘
apply plugin: ‘war‘ 
apply plugin: ‘com.bmuschko.tomcat‘

repositories {
    jcenter()
}

dependencies {   

    testCompile ‘junit:junit:4.12‘ 

    providedCompile "javax.servlet:javax.servlet-api:3.1.0"      

}


dependencies {
    def tomcatVersion = ‘7.0.59‘

    tomcat "org.apache.tomcat.embed:tomcat-embed-core:${tomcatVersion}",
           "org.apache.tomcat.embed:tomcat-embed-logging-juli:${tomcatVersion}",
           "org.apache.tomcat.embed:tomcat-embed-jasper:${tomcatVersion}"
}


buildscript {

    repositories {
        jcenter()
    }

    dependencies {
        classpath ‘com.bmuschko:gradle-tomcat-plugin:2.2.2‘
    }
}
Groovy

注意,每次build.gradle内容有发生变化时,需要使用Gradle工具来更新项目。如下图中所示 -

技术分享图片

3-编辑应用程序结构

In “src/main” folder, you need to create 2 sub folders are “resources” and “webapp”.

在”src/main“文件夹中,需要创建2个子文件夹,分别为“resources”和“webapp”。

  • src/main/java: 此文件夹中存放 java 源文件代码。
  • src/main/resources: 此文件夹中可以存放属性文件和其他资源。
  • src/main/webapp: 此文件夹包含jsp和其他Web应用程序内容。

创建完成后,目录结构如下图中所示 -

技术分享图片

项目代码

创建一个简单的类,叫作 Greeting.java 在 gradlewebapp.bean 包下,其项目结构和代码如下所示 -

技术分享图片

Greeting.java 文件的源代码如下所示 -

package com.yiibai.gradlewebapp.bean;

public class Greeting {

    public String getHello()  {
        return "Hello Gradle Web Application";
    }
}
Java

接下来,我们还要创建一个简单的JSP页面,在 webapp 目录下创建一个 hello.jsp 文件,如下图所示 -

技术分享图片

hello.jsp 文件的代码如下所示 -

<!DOCTYPE html>
<html>
<head>

<meta charset="UTF-8">

<title>Hello Gradle Web App</title>
</head>
<body>

<jsp:useBean id="greeting" class="com.yiibai.gradlewebapp.bean.Greeting"/>

<h3>${greeting.hello}</h3>



</body>
</html>
HTML

5- Gradle构建

在 Eclipse 菜单中 Window -> Show View -> Other... -> Gradle -> Gradle Tasks 打开“Gradle任务”视图。如下所示 -

技术分享图片

Right-click on “build” and select “Run Gradle Tasks”.

右键单击“build”并选择“Run Gradle Tasks”,如下图中所示 -

技术分享图片

查看 Gradle Executions 选项卡,应该看到执行的任务的列表。

注意,如果出现类似错误:Gradle Could not find tools.jar. Please check that ...,则在右键单击“build” 选择“Create Gradle Run Configurate...”(第二个选项)并对应JDK安装的目录,重新构建编译即可,如下图中所示 -

技术分享图片

构建成功,输出结果如下所示 -

Working Directory: D:/worksp/GradleWebApp
Gradle User Home: D:/worksp/gradle/Downloads
Gradle Distribution: Local installation at D:/worksp/yiibai.com/gradle-3.1
Gradle Version: 3.1
Java Home: D:/Program Files/Java/jdk1.8.0_65
JVM Arguments: None
Program Arguments: None
Gradle Tasks: build

:compileJava
:processResources UP-TO-DATE
:classes
:war
:assemble
:compileTestJava
:processTestResources UP-TO-DATE
:testClasses
:test
:check
:build

BUILD SUCCESSFUL

Total time: 8.521 secs
Groovy

6-配置以运行应用程序

在项目名称上点击右键,在弹出的菜单选项中选择 Run As -> Run Configurations... 在弹出的界面中选择 “New”,如下图中所示 -

技术分享图片

输入以下几个内容:

  • Name: Run GradleWebApp
  • Gradle Tasks: tomcatRun
  • Working Directory: ${workspace_loc:/GradleWebApp}

如有必要,还需要指定 GradleJDK的安装的目录,最终的结果如下图所示 -

技术分享图片

如果是第一次运行,可能还要下载一些应用程序,所以需要等待一段时间…找点咖啡之类的东西喝先。
运行成功后,应该可以看到类似下面的输出结果 -

Working Directory: D:/worksp/GradleWebApp
Gradle User Home: D:/worksp/gradle/Downloads
Gradle Distribution: Local installation at D:/worksp/yiibai.com/gradle-3.1
Gradle Version: 3.1
Java Home: D:/Program Files/Java/jdk1.8.0_65
JVM Arguments: None
Program Arguments: None
Gradle Tasks: tomcatRun

:compileJava UP-TO-DATE
:processResources UP-TO-DATE
:classes UP-TO-DATE
:tomcatRun
Download https://jcenter.bintray.com/org/apache/tomcat/embed/tomcat-embed-core/7.0.59/tomcat-embed-core-7.0.59.pom
Download https://jcenter.bintray.com/org/apache/tomcat/embed/tomcat-embed-logging-juli/7.0.59/tomcat-embed-logging-juli-7.0.59.pom
Download https://jcenter.bintray.com/org/apache/tomcat/embed/tomcat-embed-jasper/7.0.59/tomcat-embed-jasper-7.0.59.pom
Download https://jcenter.bintray.com/org/apache/tomcat/embed/tomcat-embed-el/7.0.59/tomcat-embed-el-7.0.59.pom
Download https://jcenter.bintray.com/org/eclipse/jdt/core/compiler/ecj/4.4/ecj-4.4.pom
Download https://jcenter.bintray.com/org/apache/tomcat/embed/tomcat-embed-core/7.0.59/tomcat-embed-core-7.0.59.jar
Download https://jcenter.bintray.com/org/apache/tomcat/embed/tomcat-embed-logging-juli/7.0.59/tomcat-embed-logging-juli-7.0.59.jar
Download https://jcenter.bintray.com/org/apache/tomcat/embed/tomcat-embed-jasper/7.0.59/tomcat-embed-jasper-7.0.59.jar
Download https://jcenter.bintray.com/org/apache/tomcat/embed/tomcat-embed-el/7.0.59/tomcat-embed-el-7.0.59.jar
Download https://jcenter.bintray.com/org/eclipse/jdt/core/compiler/ecj/4.4/ecj-4.4.jar
Started Tomcat Server
The Server is running at http://localhost:8080/GradleWebApp
Groovy

打开浏览器,输入URL:http://localhost:8080/GradleWebApp/hello.jsp ,得到以下显示结果。

技术分享图片

注意:您还可以使用Gradle Tomcat插件来创建其他任务:

任务名称类型描述
tomcatRun TomcatRun 启动Tomcat实例并部署浏览Web应用程序
tomcatRunWar TomcatRunWar 启动Tomcat实例并将WAR部署它
tomcatStop TomcatStop 停止Tomcat实例
tomcatJasper tomcatJasper 运行JSP编译器,并使用Jasper将JSP页面转换为Java源代码

以上是关于Gradle Java Web应用程序并在Tomcat上运行的主要内容,如果未能解决你的问题,请参考以下文章

CORS 过滤器在我的 Java 应用程序中不起作用

Android Gradle 插件gradle.properties 中配置编译参数并在 Java 代码 BuildConfig 中调用该参数

我可以在 Gradle 中设置一个变量并在编译时将其传递给 Java 吗?

Gradle构建Java Web应用:Servlet依赖与Tomcat插件(转)

Java Tomcat Web 应用程序 JNI

如何通过 Gradle 将 ojdbc7 添加到 Java Web 应用程序?