3. 常用配置(針對JAVA和WEB項目)
?
打開build.gradle文件责嚷,由于是IDEA創(chuàng)建的,所以里面已經(jīng)有了一些內(nèi)容亦渗。
group和version分別為項目的所在組和版本信息又兵。和Maven類似,而artifactId在gradle則是項目的name枫笛,值保存在settings.gradle文件的rootProject.name中吨灭。
針對java項目和web項目,根據(jù)官方文檔刑巧,我將build.gradle進行了如下修改喧兄,如圖所示:
apply plugin: 'java'//添加Java插件
apply plugin :'maven'//添加Maven插件
添加Java和Maven插件无畔,可以使用兩者的相關(guān)配置。
sourceCompatibility=1.7
targetCompatibility =1.7
分別指定開發(fā)環(huán)境和編譯使用的JDK版本吠冤。根據(jù)Maven項目經(jīng)驗浑彰,在不同IDE間導入Maven項目時,經(jīng)常會出錯拯辙,通過指定JDK可以有效解決此問題郭变,故保險起見,這里也加上涯保。
task createJavadoc(type: Javadoc) ?{
? ? ? source = sourceSets.main.allJava
}
配置了這個任務(wù)后诉濒,執(zhí)行g(shù)radle的javadoc命令,可以自動生產(chǎn)javaDoc文檔夕春。前提當然你自己有給類和方法按規(guī)范添加注解未荒。
tasks.withType(JavaCompile) {
? ? ? ? options.encoding ="UTF-8"
}
設(shè)置編碼為UTF-8,如果不設(shè)置及志,則注釋有中文等情況時片排,生成javaDoc會出現(xiàn)亂碼,并且執(zhí)行build命令時會出現(xiàn)警告和錯誤速侈。
repositories {
? ? ? mavenLocal()//添加Maven本地資源庫
? ? ? mavenCentral()//添加Maven中央資源庫
}
配置獲取資源的資源庫
mavenLocal()表示會從本地獲取資源率寡,獲取資源的順序為
%USER_HOME%/.m2/settings.xml中指定的路徑 >?
%M2_HOME%/conf/settings.xml中指定的路徑 >
?%USER_HOME%/.m2/repository。
注:這里發(fā)現(xiàn)一個BUG倚搬,按照官方文檔說勇劣,如果系統(tǒng)用戶文件夾下的.m2中不存在settings.xml文件會自動去找%M2_HOME%的settings.xml文件,實際卻不會潭枣,然后直接指向了%USER_HOME%/.m2/repository比默。建議自定義maven本地庫的,把%M2_HOME%的settings.xml文件COPY一份到%USER_HOME%/.m2目錄下即可盆犁。
mavenCentral()表示會從Maven中央庫獲取數(shù)據(jù)命咐。
除這2種,gradle還可以從指定的URL獲取資源谐岁,比如:
repositories {
? ? maven {
? ? ? ? url"http://127.0.0.1:8081/nexus/content/repositories/"
? ? }
? ? ?mavenLocal()//添加Maven本地資源庫
? ? ?mavenCentral()//添加Maven中央資源庫
}
這里除了本地和中央庫醋奠,還會從我本地的Maven私服中獲取資源。
dependencies {
? ? ?testCompile 'junit:junit:4.12'//添加單元測試
? ? ?testCompile 'org.springframework:spring-test:4.2.5.RELEASE'// Spring測試支持
? ? ?compile 'org.springframework:spring-context:4.2.5.RELEASE'
}
添加依賴包伊佃,和Maven類似窜司。上面我采用的是簡寫語法,還有一種是完整的寫法航揉,如下:
testCompile group:'junit', name:'junit', version:'4.12'
和Maven類似塞祈,gradle導入依賴包也可以定義其作用的生命周期:
compile:編譯時必須。
runtime:運行時必須帅涂,包括編譯時议薪。
testCompile:測試編譯時必須尤蛮。
testRuntime:測試運行時必須,包括編譯時斯议。
注:此外配置依賴包产捞,還可以模塊化配置、導入list哼御、配置是否傳遞等坯临。還沒細看。
以上這些已經(jīng)可以支撐平常的java或web項目開發(fā)了恋昼。接下來還有一個問題尿扯,項目開發(fā)時,經(jīng)常會模塊化開發(fā)焰雕,有時候有些jar可以復(fù)用,或者項目需要按不同版本(SNAPSHOT/RELEASE等)發(fā)布到Maven私服中芳杏,下面就說說如何發(fā)布項目到Maven私服等資源庫中矩屁。