[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 檔
網頁應用程式專案
建立最上層的 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
建置完成後, 只要將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