Gradle入門(6):建立Web應用項目

本文由 伯樂在線 - JustinWu翻譯,黃利民 校稿。未經許可,禁止轉載! 英文出處:Petri Kainulainen。歡迎加入翻譯組html

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

建立Web應用項目

若是要用 Java 和 Gradle 建立一個 Web 應用項目,咱們首先須要建立一個 Java 項目,下面來看看該如何去作。git

建立Java項目

咱們可使用Java插件建立一個Java項目,經過添加如下代碼行到build.gradle文件中便可。github

apply plugin: 'java'

擴展閱讀: Java插件中加入了一些新的約定(例如:默認的目錄格式)、任務和構建屬性。若是你想獲悉這些內容,能夠閱讀下面這篇文章。《Gradle入門(2):第一個Java項目web

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

打包Web應用

在咱們使用War插件打包Web應用前,須要將其加入到構建中。在應用了War插件後,build.gradle文件以下:api

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

War插件在項目的目錄佈局下添加了一個新的目錄,加入了兩個新的依賴管理配置項,以及在項目中添加了一個新的任務。這些變化的詳細描述以下:app

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

即使War插件在項目的目錄佈局下添加了src/main/webapp目錄,但它實際上並無被真正建立。若是咱們須要這個目錄,那就必須本身來建立。webapp

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

如今,咱們能夠在命令提示符下,經過gradle war命令打包Web應用。此時此刻,咱們能夠看到以下輸出:

> gradle war
:compileJava
:processResources
:classes
:war
 
BUILD SUCCESSFUL
 
Total time: 4.937 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'

build.gradle的源代碼以下:

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

第三步,按照如下步驟配置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應用。

總結

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

  • 咱們學會了,若是要使用默認配置,就必須把Web應用的源文件置於 src/main/webapp 目錄下。
  • 咱們學會了,War插件會添加兩個新的依賴項(providedCompile 和 providedRuntime)到構建中,還學會了這些依賴項是如何工做的。
  • 咱們學會了,將Web應用打包爲WAR文件。
  • 咱們學會了,在開發環境中運行Web應用。

P.S. 你能夠從 Github 上拿到這篇教程的演示程序

關於做者:JustinWu

相關文章
相關標籤/搜索