Gradle還生成了兩個啟動腳本,gradlew.bat 用于Windows,而gradlew用于Unix和Linux的環(huán)境,這些腳本也可以在沒有設(shè)置Gradle的機器上運行項目,它會自動下載gradle wrapper來運行。
大家好,我是指北君。
今天我們來講講如何將 Maven 項目轉(zhuǎn)換為 Gradle 項目。這個過程還是蠻簡單的,下面通過一個例子來說明怎么轉(zhuǎn)換。
Gradle 設(shè)置
如果沒有安裝 gradle, 我們可以從 Gradle 官網(wǎng)下載最新的版本,根據(jù)gradle官方的文檔安裝即可。可以看我們之前的文章,這里不過多的描述。
Maven pom
假設(shè)我們有這樣一個 maven項目,pom.xml 文件如下:
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>cn.javanorth</groupId>
<artifactId>maven-to-gradle</artifactId>
<version>0.0.1-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.12.0</version>
</dependency>
</dependencies>
</project>
有了maven項目,也安裝了gradle,那我們就可以動手轉(zhuǎn)換到gradle了。
執(zhí)行 gadle init
我們在終端跳轉(zhuǎn)到Maven項目的根目錄,就是包含pom.xml 文件的目錄, 然后執(zhí)行 gradle init? 命令。從終端響應(yīng)結(jié)果從輸入yes 并按回車健。
$ gradle init
Found a Maven build. Generate a Gradle build from this? (default: yes) [yes, no] yes
> Task :init
Maven to Gradle conversion is an incubating feature.
Get more help with your project: https://docs.gradle.org/7.3/userguide/migrating_from_maven.html
BUILD SUCCESSFUL in 3s
2 actionable tasks: 2 executed
生成的Gradle構(gòu)建文件
現(xiàn)在讓我們重新檢查一下我們項目的根目錄的內(nèi)容。我們應(yīng)該在根目錄中看到一些新文件,下面我們展開講講這幾個文件的用處。
build.gradle
build.gradle? 文件是Gradle構(gòu)建過程的核心組件,它直接等同于Maven構(gòu)建的pom.xml?文件。我們可以看到pom.xml?中的依賴屬性,如groupId、version、dependencies,會有一些對應(yīng)的gradle屬性與之關(guān)聯(lián)。
另外還有sourceCompatibility屬性,它是用于告訴我們在編譯Java時要使用哪個Java版本。
插件部分, java是為構(gòu)建任何類型的Java項目提供支持,而 maven-publish 是為發(fā)布項目到Maven兼容的倉庫提供支持。
/*
* This file was generated by the Gradle 'init' task.
*/
plugins {
id 'java'
id 'maven-publish'
}
repositories {
mavenLocal()
maven {
url = uri('https://repo.maven.apache.org/maven2/')
}
}
dependencies {
implementation 'org.apache.commons:commons-lang3:3.12.0'
}
group = 'cn.javanorth'
version = '0.0.1-SNAPSHOT'
description = 'maven-to-gradle'
java.sourceCompatibility = JavaVersion.VERSION_1_8
publishing {
publications {
maven(MavenPublication) {
from(components.java)
}
}
}
settings.gradle
Gradle在初始化過程中是通過使用settings.gradle文件來配置并確定哪些項目被包含在此次構(gòu)建中。
/*
* This file was generated by the Gradle 'init' task.
*/
rootProject.name = 'maven-to-gradle'
gradlew 和 gradlew.bat
Gradle還生成了兩個啟動腳本,gradlew.bat 用于Windows,而gradlew用于Unix和Linux的環(huán)境,這些腳本也可以在沒有設(shè)置Gradle的機器上運行項目,它會自動下載gradle wrapper來運行。