使用Gradle快速構建專案
黃少存,叩丁狼高階講師,本文為原創文章,轉載請註明出處。
到這裡,相信大家都已經知道 Gradle 就是一個構建工具,其主要的目的就是幫咱們構建專案,以下我就通過一個普通的 Java 專案和普通的 web 專案的構建帶你走入 Gradle 專案構建.
1 Gradle 搭建Java專案
使用構建工具搭建 Java 專案的主要目的就是其自動的打包和依賴功能.以下就來看下如何使用 Gradle 搭建 Java 專案
1.1 專案建立
IDEA 自帶 Gradle 和 Groovy 外掛,所以可以直接建立 Gradle 專案.如果是 eclipse 需要安裝對應的外掛.
IDEA 建立 Gradle Java 專案
- file -> new project -> Gradle -> 勾選 Java
- 輸入: GroupId,ArtifactId,Version
- Use local graedle distribution 選擇Gradle home
- 在 src/main/java下建立包 cn.wolfcode和建立 App.java 類
- 在 App 中列印 hello gradle,測試
以上操作咱們就已經使用 Gradle 搭建好了 Java 專案,專案中自動生成了目錄和 build.gradle,settings.gradle,接下來咱們就來看下build.gradle
1.2 build.gradle 和專案目錄
// plugins 方法,傳入閉包{} 作為引數 plugins { id 'java' } group 'cn.wolfcode.gradle' // group 方法 version '1.0-SNAPSHOT' sourceCompatibility = 1.8 // 變數 // repositories 方法,傳入閉包 repositories { mavenCentral() } // dependencies 方法,傳入閉包 dependencies { testCompile group: 'junit', name: 'junit', version: '4.12' }
建立完專案之後會自動生成 build.gralde , 裡面配置了構建專案的基本指令碼.
此指令碼用的就是 Groovy 語言書寫的,從指令碼上看可得知,除了sourceCompatibility 是變數,其他的都是方法呼叫.
plugins,repositories ,dependencies 傳入的是閉包.至於每一項配置是什麼意思,期待後面的構建指令碼介紹.
從創建出來的專案上咱們可以看到自動生成了一些目錄,這些目錄結構跟 Maven 構建是相同的.結構如下:
構建工具構建的Java專案主要目的是可以打包.接下來咱們就來看下如何使用 Gradle 給專案打包
1.3 Gradle 打包 Java 專案
操作非常簡單,在 IDEA 右邊有一 Gradle ,展開找到 Tasks 任務,展開 Tasks下的 build 直接點選 jar 就可以打包.
當點選了 jar 之後就會自動打包到專案下的build/libs下,如圖
以上使用 Gradle 構建普通的 Java 專案就已經完成了,接下來咱們就來看下如何使用 Gradle 構建普通的 web 專案
2 Gradle 構建 web 專案
使用 Gradle 構建 web 專案和 構建 Java 專案類似,只在第一步位置勾選 web 即可.
2.1 建立 web 專案
- file -> new project -> Gradle -> 勾選 Web
- 輸入: GroupId,ArtifactId,Version
- Use local graedle distribution 選擇Gradle home
具體操作如下
以上操作咱們就已經使用 Gradle 搭建好了 Java 專案,專案中自動生成了目錄和 build.gradle,settings.gradle,接下來咱們就來看下build.gradle
2.2 build.gradle 和專案目錄
plugins {
id 'java'
id 'war' //比普通的 java 專案多出了一個 war 外掛的引入
}
group 'cn.wolfcode.gradle'
version '1.0-SNAPSHOT'
sourceCompatibility = 1.8
repositories {
mavenCentral()
}
dependencies {
testCompile group: 'junit', name: 'junit', version: '4.12'
}
以上咱們可以看出,web專案只是在build.gradle 中多引入了war 外掛而已.
目錄由工具自動生成,如果是手動將 Java 專案改為 web 專案需要自己手動建立目錄或者自己書寫生成目錄的外掛.自動生成目錄如下.
以上使用 Gradle 專案咱們就已經構建好了一個簡單的 web 專案.而作為一個強大的構建工具,不僅僅是約束了專案結構那麼簡單,其實還可以打成 war 包和引入外掛,這裡作為一個簡單的 web 專案,咱們就先來打個 war 包吧.
2.2 web 專案打包為 war 包
操作非常簡單,在 IDEA 右邊有一 Gradle ,展開找到 Tasks 任務,展開 Tasks下的 build 直接點選 war 就可以打包.
當點選了 war 之後就會自動打包到專案下的build/libs下,如圖
以上使用 Gradle 構建普通的 web 專案就已經完成了.
FS : 你這個騙子! 我的 IDEA 不會自動生成目錄,還有錯誤!!!
ME : 是你太快了,有時太快也是不好滴...
ME : 如果用的是 2016 版,在建立專案時勾選自動建立目錄,如下
口 Create directories fo empty content roots automatically
FS : 已經建立了,不想刪除再重新建立咋辦?
ME : 那就手動建立目錄唄 !!! (●>∀<●)ノ♥
ME : 建立完了嗎? 完了告訴你,其實還可以自動生成目錄. (●’◡’●)ノ♥
ME : 是不是一下子把目錄都給記住了. 哈... 哈... 哈...
3 自定義目錄生成任務
def createDir(fileName){
File f = new File(fileName);
f.mkdirs()
}
task createJavaProjectDir << {
def dirList = ['src/main/java','src/main/resources','src/test/java','src/test/resources']
dirList.each {fileName ->
createDir(fileName)
}
}
task createWebProjectDir (dependsOn: createJavaProjectDir) << {
def fileName = 'src/main/webapp'
createDir(fileName)
}
重新整理 Task 列表在other下直接雙擊 createWebProjectDir 即可生成目錄。當然這些可能看不懂,先不管,生成了再說,詳情請看任務篇。