建立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'

}

接下來需要將應用程式的組態新增「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'
    }
}

注意,每次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.javagradlewebapp.bean 包下,其專案結構和程式碼如下所示 -

Greeting.java 檔案的原始碼如下所示 -

package com.yiibai.gradlewebapp.bean;

public class Greeting {

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

接下來,我們還要建立一個簡單的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>

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/tw511.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

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/tw511.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

開啟瀏覽器,輸入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原始碼