Gradle入門(6):建立Web應用專案

JustinWu發表於2015-11-19

如果你並不熟悉Gradle,在繼續閱讀本文之前,你應當先閱讀以下文章。

建立Web應用專案

如果要用 Java 和 Gradle 建立一個 Web 應用專案,我們首先需要建立一個 Java 專案,下面來看看該如何去做。

建立Java專案

我們可以使用Java外掛建立一個Java專案,通過新增以下程式碼行到build.gradle檔案中即可。

擴充套件閱讀:

Java外掛中加入了一些新的約定(例如:預設的目錄格式)、任務和構建屬性。如果你想獲悉這些內容,可以閱讀下面這篇文章。《Gradle入門(2):第一個Java專案

我們繼續探索如何打包Web應用。

打包Web應用

在我們使用War外掛打包Web應用前,需要將其加入到構建中。在應用了War外掛後,build.gradle檔案如下:

War外掛在專案的目錄佈局下新增了一個新的目錄,加入了兩個新的依賴管理配置項,以及在專案中新增了一個新的任務。這些變化的詳細描述如下:

  • War外掛在專案的目錄佈局下新增了src/main/webapp目錄,這個目錄包含Web應用的原始檔(CSS檔案、Javascript檔案、JSP檔案等)。
  • War外掛加入了兩個新的依賴管理配置項providedCompile 和 providedRuntime.,這兩個配置項與compile 和 runtime 配置項的作用域相同,但是區別是這兩個配置項所屬的依賴不會被新增到WAR檔案中。
  • War外掛也會在應用專案中新增war任務,這個任務會將WAR檔案置於build/libs目錄中。

即便War外掛在專案的目錄佈局下新增了src/main/webapp目錄,但它實際上並沒有被真正建立。如果我們需要這個目錄,那就必須自己來建立。

擴充套件閱讀:

如果你不知道compileruntime配置項是什麼,你應該閱讀以下文章:《Gradle入門(3):依賴管理

現在,我們可以在命令提示符下,通過gradle war命令打包Web應用。此時此刻,我們可以看到如下輸出:

如果一切順利,我們應該可以在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檔案如下:

build.gradle的原始碼如下:

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

  1. 配置Gretty,當執行Web應用時,使用Jetty 9作為servlet容器。
  2. 配置Jetty,監聽8080埠。
  3. 配置Jetty,使用上下文路徑’/’執行Web應用。

build.gradle檔案的原始碼如下:

擴充套件閱讀:如果你想了解關於Gretty的更多內容,可以仔細看一下以下文件:

現在,我們可以通過在命令提示符下執行以下命令,開啟或終止我們的Web應用:

  • gradle appStart命令能執行Web應用。
  • gradle appStop命令能終止Web應用。

總結

這篇教程教會了我們四項內容:

  • 我們學會了,如果要使用預設配置,就必須把Web應用的原始檔置於 src/main/webapp 目錄下。
  • 我們學會了,War外掛會新增兩個新的依賴項(providedCompile 和 providedRuntime)到構建中,還學會了這些依賴項是如何工作的。
  • 我們學會了,將Web應用打包為WAR檔案。
  • 我們學會了,在開發環境中執行Web應用。
P.S. 你可以從 Github 上拿到這篇教程的演示程式

相關文章