一.使用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模塊 我們可以在shared模塊中的build.gradle文件中這樣寫:
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 archivewebInf { 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上下文路徑
?