[Gradle]Quick Start 系列-5 建置網頁應用程式專案

[Gradle]Quick Start 系列-5 建置網頁應用程式專案

參考

http://www.springsourcery.org/springSourcery/content/viewContent,1,42.html?random=2937

http://stackoverflow.com/questions/4209847/gradle-copy-war-to-tomcat-directory

 

本章運用現在仍然火紅的Spring MVC當基底, 以多個專案提供網頁的API, 如: Interface 層, 實作Interface 層; 運用前幾章學會的技巧快速地建置程式並包裝成war 檔

 

網頁應用程式專案

image

 

建立最上層的 build.gradle

 

加入plugin,  並將compile, runtime, testCompile  階段所需的類別庫加入, (註: 這需要反覆測試)

subprojects {
    apply plugin: 'java'
    apply plugin : 'eclipse-wtp'
 
    version = '1.0'
 
    repositories {        
        mavenCentral()
    }
    
    dependencies {            
        compile "org.springframework:spring-webmvc:3.0.5.RELEASE"        
        runtime "org.slf4j:slf4j-log4j12:1.6.1"
        runtime "javax.servlet:jstl:1.2"
        testCompile 'junit:junit:4.8.2'
        testCompile 'org.springframework:spring-test:3.0.5.RELEASE'
    }
    
}

 

設定 settings.gradle

include "MyInterface", "MyInterfaceImplementation", "MyWeb"

 

設定各專案的build.gradle

 

MyInterface 專案:

    無須設定

 

MyInterfaceImplementation 專案:

dependencies {
    compile project(':MyInterface')
}

 

MyWeb 專案:

apply plugin: 'war'
 
dependencies {
    compile project(':MyInterfaceImplementation')
}

 

執行 gradle build

image

 

建置完成後, 只要將MyWeb-1.0.war 佈署到web 應用程式伺服器, 就可以work了.

 

接下來的問題是 : test 看似有執行但怎麼沒有report ?!  

 

完整下載包在這裡

 

結語:

Quick start 顧名思義就是可以馬上做出東西, 但離精通還有很長的一條路, 我還得再多 k 一些書及範例才行. Gradle真的是一個功能很強大又很輕便的建置工具, 而且還支援寫 script 程式, 由其適合開發專案的團隊引用,有時遇到一些些環境的差異, 只需要改一下 build.gradle 就可以了, 不用再繼承ant.Task 再compiler ... 麻煩的事,而且又可以用maven 或 ivy, 處理掉煩人的類別庫相依性的問題, 如案例中, spring mvc 可是依賴aopalliance-1.0.jar, commons-logging-1.1.1.jar ... 一堆十來個類別庫, 但只要一句語法, 就解決了 :D