Gradle學習之構建java與web項目
一.使用Gradle的java插件構建Java項目
1)Gradle插件包含了若幹個接口定義和已有的任務項,語法結構:apply plugin:‘插件名‘ ,此處我們定義插件
apply plugin : ‘java‘
2)Gradle希望我們的java項目需要遵循以下規範:
src/main/java :放置java源文件
src/test/java :放置測試文件,比如單元測試等
src/main/resources: 此目錄下的文件會被作為資源文件打入jar包
src/test/resources: 放置提供給測試用的配置文件
3) java插件包含了若幹個構建項目的任務,最常用的就是build任務,當我們運行build任務時,Gradle會編譯,運行我們的測試腳本(類)並生成jar文件在build/lib下
4) 其他常用的任務:
clean:刪除已經構建的目錄及其文件
assemble:編譯並生成Jar或者war文件,註意不會運行測試文件
check:編譯並測試代碼
二.外部依賴
1)和maven類似,如果要在項目中添加所依賴的外部jar文件,我們必須要告訴Gradle在哪裏找到它們
語法:
1 repositories { 2 jcenter() 3 mavenLocal() //maven本地倉庫 4 mavenCentral() //maven中心倉庫 5 /* 6 指定maven遠程倉庫地址7 */ 8 maven { url ‘http://maven.aliyun.com/nexus/content/groups/public/‘ } 9 maven { url "http://repo.spring.io/snapshot" } 10 maven { url "http://repo.spring.io/milestone" } 11 }
2)當指定好倉庫地址時,我們可以添加依賴
語法:
dependencies{ compile group:‘類似於maven中的groupid‘,name:‘類似於maven中的affactid‘,version:‘版本號‘ compile‘group:name:version‘ }
三.java多項目構建
1)gradle也可以支持多項目構建,比如說如下項目:
multiproject/
api/
services/webservice/
shared/
services/shared/
2)此時我們要在settings.gradle裏配置 依賴的模塊:
include "shared", "api", "services:webservice", "services:shared"
3)比如說 shared要依賴api 語法:
dependencies { compile project(‘:shared‘) }
4)常見屬性
sourceCompatibility: 使用哪種JDK版本編譯
targetCompatibility : 生成class的Java版本
四。構建web項目
1)需要添加web插件:apply plugin:‘war‘
2) war任務 主要用於將web應用程序打包成war
3) 與maven規範一致:web的相關資源位於src/main/webapp下
使用示例:
war { from ‘src/rootContent‘ // adds a file-set to the root of the archive webInf { from ‘src/additionalWebInf‘ } // adds a file-set to the WEB-INF dir. classpath fileTree(‘additionalLibs‘) // adds a file-set to the WEB-INF/lib dir. classpath configurations.moreLibs // adds a configuration to the WEB-INF/lib dir. webXml = file(‘src/someWeb.xml‘) // copies a file to WEB-INF/web.xml }
另外我們可以設置webAppDirName來指定我們web上下文路徑
Gradle學習之構建java與web項目