天天看點

Gradle 簡單介紹以及與 Maven 項目的互相轉化

gradle 簡單介紹

gradle 安裝

和 maven 的安裝類似,解壓設定GRADLE_HOME即可。

gradle 核心——project & task

Gradle 裡的幾乎任何東西都是基于兩個基礎概念:project & task。

Gradle 中所有執行的事件都是借由 Task 執行的。

對于一個Gradle工程,根目錄執行:​​

​gradle tasks -q​

​​,​

​-q​

​​表示忽略gradle本身的log資訊,加上這個參數可以屏蔽很多無關的輸出。

通常會給task附帶一些執行動作,稱之為Action。

也可以附帶一個閉包配置,稱之為Configuration,閉包中不僅可用做指派操作,也可以執行一些自動執行的配置。

Task依賴。

task xxx << {
}      

這樣的文法等價于

task xxx
xxx.dolast {
}      

關于project:

目錄:

重要檔案:

setting.gradle檔案

build.gradle 類似于pom.xml

一個父工程 project 可以包含多個子工程 child-project,一般一個工程一個 build.gradle 檔案。父工程的 build.gradle 統一管理子工程的build.gradle。

Gardle v.s. Maven

優勢:基于 groovy 的簡潔文法;

groovy task 比 maven plugin 靈活友善;

互相轉化

下面的方法可以把gradle轉成maven項目,前提是gradle項目目錄結構保持跟maven一樣的約定,即/src/main/java。

gradle --> maven

在build.gradle中增加以下内容(group,version可自行修改,artifactId預設為目錄名稱)

apply plugin: 'java'
apply plugin: 'maven'

group = 'com.101tec'
version = '0.7-dev'
sourceCompatibility = 1.8      
task writeNewPom << {
    pom {
        project {
            inceptionYear '2018'
            licenses {
                license {
                }
            }
        }
    }.writeTo("$buildDir/pom.xml")
}      

maven --> gradle