gradle在Java專案構建引數詳細解釋
如果需要了解更多細節或答疑,請關注我的公眾號:
總結整理Java專案建立時常見gradle引數的解釋與用法。
首先通過Idea的spring initializr新建一個Gradle構建的Java任務,隨便選擇幾個springboot元件:
選擇Finish,專案新建完畢,開啟build.gradle檔案,會看到以下一些內容,具體三個級別:buildscript/allprojects/repositories已經添加註釋如下(根據自己的專案添加了對應的阿里雲映象以及部分依賴):
//buildScript塊主要是為了Gradle指令碼自身的執行,獲取指令碼依賴外掛。 buildscript { ext { springBootVersion = '2.1.0.RELEASE' } repositories { mavenLocal() maven { url 'http://maven.aliyun.com/nexus/content/groups/public/' } mavenCentral() } dependencies { classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}") } } apply plugin: 'java' apply plugin: 'eclipse' apply plugin: 'org.springframework.boot' apply plugin: 'io.spring.dependency-management' group = 'com.example' version = '0.0.1-SNAPSHOT' sourceCompatibility = 1.8 //allprojects塊的repositories用於多專案構建,為所有專案提供共同所需依賴包。而子專案可以配置自己的repositories以獲取自己獨需的依賴包(即下面的repositories)。 allprojects { repositories { mavenLocal() maven { url 'http://maven.aliyun.com/nexus/content/groups/public/' } mavenCentral() } } //根級別的repositories主要是為了當前專案提供所需依賴包,比如log4j、spring-core等依賴包可從Nexus私服或者mavenCentral倉庫獲得。 repositories { mavenLocal() maven { url 'http://maven.aliyun.com/nexus/content/groups/public/' } mavenCentral() } dependencies { //mybatis-generator 外掛 implementation('org.mybatis.generator:mybatis-generator-core:1.3.7') //mybatis-springboot 整合 implementation('org.mybatis.spring.boot:mybatis-spring-boot-starter:1.3.2') //MYSQL5.X版本Driver implementation('mysql:mysql-connector-java:5.1.47') //mybatis-springboot 測試整合 testImplementation('org.mybatis.spring.boot:mybatis-spring-boot-starter-test:1.3.2') testImplementation('org.springframework.boot:spring-boot-starter-test') implementation('org.springframework.boot:spring-boot-starter-jdbc') }
可以看出我們先通過buildscripts下載對應需要的執行的plugin,然後通過allprojects下載全域性系列依賴,然後通過repositories下載本專案需要的依賴。
其中介紹下以下幾個plugin分別代表的是什麼意思與作用:
對應的前三個plugin引入的Task如上截圖所示,其中:
apply plugin: 'org.springframework.boot'
是用來引入自動構建Springboot相關的Task
apply plugin: 'eclipse'
是用來做對應專案標準化操作的Task
apply plugin: 'java'
是剩餘藍色部分,傳統Java專案對應的一系列構建Task
apply plugin: 'io.spring.dependency-management'
這個Plugin是Springboot2開始引入的新的構建外掛,主要解決的是引用依賴關係的,後續對應的依賴版本都可以忽略不寫,具體如下:
簡介:
Spring IO Platform是Spring官網中排第一位的專案。它將Spring的核心API整合到一個適用於現代應用程式的平臺中。提供了Spring專案組合中的版本依賴。這些依賴關係是經過測試,可以保證正常工作。
為什麼要使用?
Spring IO Platform主要是解決依賴版本的衝突問題。舉個栗子:在使用Spring的時候,經常會使用到第三方庫,一般大家都是根據經驗挑選一個版本浩或挑選最新的,其實這是存在隱患的。除非做過完整的測試,保證整合該版本的依賴不會出現問題,否則風險很大,且後續擴充套件會越來越困難。因為隨著業務複雜度的增加,整合的第三方元件會越來會多,依賴之間的關聯也會也來越複雜。
Spring IO Platform正好解決了這些問題,在我們新增第三方依賴時,不需要寫版本號,它能自動幫我們選擇一個最優的版本,保證最大限度的擴充套件。
最後如果有上傳到私服需要的話,引入maven plugin和uploadArchives Task,執行gradle upload 命令即可上傳jar包至對應私服,具體配置如下:
apply plugin: 'maven' uploadArchives { repositories { mavenDeployer { //SNAPSHOT版本提交地址 snapshotRepository(url: 'http://maven.nexus.com/nexus/content/repositories/snapshots/') { authentication(userName: 'admin', password: 'abc123') } //正式版本提交地址 repository(url: 'http://maven.nexus.com/nexus/content/repositories/releases/') { authentication(userName: 'admin', password: 'abc123') } pom.groupId = group pom.version = version pom.artifactId = 'mybatisspringboot' } } }
基本完成,以上就是99%常規專案中涉及的外掛以及對應Task。
如果需要了解更多細節或答疑,請關注我的公眾號: