一文搞通Gradle倉(cāng)庫(kù)配置

      網(wǎng)友投稿 3808 2025-03-31

      Gradle 作為一款構(gòu)建工具,在依賴倉(cāng)庫(kù)的使用上,和Maven有相通的地方,也有不同的地方,這里,我們介紹在Gradle中,倉(cāng)庫(kù)配置的一些內(nèi)容。

      1. Gradle構(gòu)建時(shí)需要從倉(cāng)庫(kù)獲取什么?

      我們一定要首先回答清楚這個(gè)問(wèn)題,才能保證我們正確地配置了Gradle的倉(cāng)庫(kù)。Gradle在執(zhí)行構(gòu)建時(shí),和Maven類似,需要獲取下面兩種依賴:

      1.1 項(xiàng)目依賴

      在項(xiàng)目開(kāi)發(fā)中,項(xiàng)目依賴的第三方庫(kù)信息,這部分依賴在工程的build.gradle中進(jìn)行配置,如下面的配置信息:

      dependencies { implementation 'com.google.guava:guava:21.0' testImplementation 'junit:junit:4.12' }

      這里表示當(dāng)前項(xiàng)目有兩個(gè)依賴,其中 guava 是項(xiàng)目依賴,在編譯、打包、運(yùn)行等階段都會(huì)使用,junit 是單元測(cè)試依賴,只有在測(cè)試階段使用。

      這些依賴,會(huì)在項(xiàng)目構(gòu)建時(shí),下載下來(lái)使用(如果使用IDEA等IDE開(kāi)發(fā),則在編碼階段,IDE會(huì)輔助下載相關(guān)依賴,保證編碼順暢)。

      1.2 插件依賴

      我們都知道,Gradle和Maven都是插件化開(kāi)發(fā),在聲明周期不同的階段,都是通過(guò)不同的插件來(lái)完成的。項(xiàng)目構(gòu)建需要哪些依賴,都會(huì)在項(xiàng)目的build.gradle中進(jìn)行配置,如下的配置示例:

      plugins { id "jacoco" id "java" id "application" id "org.sonarqube" version "3.1.1" }

      上面的示例中,依賴了四個(gè)插件,分別是 jacoco,java,application,org.sonarqube。

      上面依賴的四個(gè)插件,都是二進(jìn)制插件(還有一種插件為腳本插件,不是我們當(dāng)前插件依賴介紹的范圍)。二進(jìn)制插件應(yīng)用是通過(guò)設(shè)置他們的ID來(lái)生效的,插件ID是插件的全局唯一標(biāo)識(shí)符,可以通過(guò)插件ID查找到插件坐標(biāo)。

      Gradle在構(gòu)建時(shí),如果需要應(yīng)用到特定的插件,并且本地倉(cāng)庫(kù)沒(méi)有,則需要從遠(yuǎn)端下載使用。

      2. Gradle倉(cāng)庫(kù)配置

      在第1節(jié),介紹了Gradle需要下載的依賴有哪些,那么,針對(duì)下載的不同的內(nèi)容,就需要進(jìn)行不同的設(shè)置。我們將分別針對(duì)項(xiàng)目依賴和插件依賴,如何在項(xiàng)目中和全局配置。

      2.1 項(xiàng)目依賴倉(cāng)庫(kù)配置

      對(duì)于項(xiàng)目依賴倉(cāng)庫(kù)配置,如果只是希望對(duì)當(dāng)前gradle工程生效,可以直接在項(xiàng)目根路徑的 build.gradle 中進(jìn)行配置,配置方法如下:

      repositories { maven { url "https://maven.aliyun.com/repository/public" } maven { url "https://repo.huaweicloud.com/repository/maven" } mavenLocal() mavenCentral() }

      如果是想要針對(duì)全局生效,可以放到 ~/.gradle/init.gradle 文件中進(jìn)行配置,如下:

      allprojects { repositories { maven { url "https://maven.aliyun.com/repository/public" } maven { url "https://repo.huaweicloud.com/repository/maven" } mavenLocal() mavenCentral() } }

      阿里云的maven倉(cāng),已經(jīng)同步了很多maven源,參考:https://maven.aliyun.com/mvn/guide,可以基于需要進(jìn)行配置,如果公司內(nèi)部,有自己的私服,也可以直接在上面使用 maven { url ""} 進(jìn)行配置。

      一文搞通Gradle倉(cāng)庫(kù)配置

      2.2 插件依賴倉(cāng)庫(kù)配置

      在Gradle中,設(shè)置項(xiàng)目依賴倉(cāng)庫(kù),是不會(huì)直接對(duì)插件依賴倉(cāng)庫(kù)生效的,需要對(duì)插件依賴倉(cāng)庫(kù)進(jìn)行單獨(dú)配置。

      如果希望配置只對(duì)當(dāng)前項(xiàng)目生效,可以在項(xiàng)目根路徑下面的 settings.gradle 中直接進(jìn)行配置,配置方法如下(注意,這個(gè)內(nèi)容一定要放在settings.gradle最前面):

      pluginManagement { repositories { maven { url "https://maven.aliyun.com/repository/gradle-plugin" } mavenLocal() mavenCentral() gradlePluginPortal() } }

      如果希望配置全局有效,可以在 ~/.gradle/init.gradle 文件中進(jìn)行配置,如下:

      settingsEvaluated { settings -> settings.pluginManagement { repositories { maven { url "https://maven.aliyun.com/repository/gradle-plugin" } mavenLocal() mavenCentral() gradlePluginPortal() } } }

      阿里云和華為云都有提供Maven鏡像倉(cāng)庫(kù)(如前面的配置,Gradle 一般都是配置 Maven鏡像倉(cāng)庫(kù)),但是當(dāng)前我查看了阿里云和華為云鏡像倉(cāng)庫(kù)的源,阿里云有同步Gradle插件倉(cāng)庫(kù)源(https://plugins.gradle.org/m2/),華為云還沒(méi)有,所以設(shè)置Gradle插件的倉(cāng)庫(kù),還需要配置阿里云Maven倉(cāng)庫(kù)。

      3. 初始化腳本(init腳本)配置

      在上面小節(jié),在全局倉(cāng)庫(kù)配置時(shí),都是配置到 init.gradle 文件中,這里簡(jiǎn)單對(duì) init 腳本進(jìn)行一些介紹(當(dāng)然,個(gè)人推薦不要做一些花里胡哨的操作,一直簡(jiǎn)單就是美,但是如果有特殊需求,可以考慮下面的配置)。

      3.1 什么是初始化腳本

      初始化腳本和項(xiàng)目中的build.gradle類似,只不過(guò)這些初始化腳本,會(huì)優(yōu)先于build.gradle執(zhí)行,因此可以在這些初始化腳本里面做一些前期動(dòng)作,例如:定義一些全局的插件、倉(cāng)庫(kù)信息、環(huán)境變量信息(例如JDK安裝路徑)、構(gòu)建-等。初始化腳本,擴(kuò)展名為 .gradle。

      3.2 初始化腳本使用

      初始化腳本有不同的生效方法,下面是幾種可以使初始化腳本生效的方法:

      (1) 在命令行中,使用 -I 或者 --init-script 指定,此時(shí)初始化腳本命名只需要 .gradle 結(jié)尾,并且放到任意位置,可以指定一個(gè)或者多個(gè) 初始化腳本,但是一定要保證指定的初始化腳本存在,否則就直接報(bào)錯(cuò);

      (2) 初始化腳本命名為 init.gradle,放到 USER_HOME/.gradle 目錄下,將自動(dòng)生效;

      (3) 初始化腳本以 .gradle 擴(kuò)展名命名,放到 USER_HOME/.gradle/init.d 目錄下,也是自動(dòng)生效;

      (4) 初始化腳本以 .gradle 擴(kuò)展名命名,放到 GRADLE_HOME/init.d 目錄下,將自動(dòng)生效。

      如果上面四類初始化腳本都存在,則按照上面的順序生效,如果在同一個(gè)層級(jí)有多個(gè)初始化腳本,則以初始化腳本名字排序生效。

      關(guān)于初始化腳本的更詳細(xì)信息,可以查看下面的參考文檔。

      4. 參考

      華為開(kāi)源鏡像站:https://mirrors.huaweicloud.com/

      阿里云云效Maven:https://maven.aliyun.com/mvn/guide

      Gradle插件幫助文檔:https://docs.gradle.org/current/userguide/plugins.html

      Gradle init script幫助文檔:https://docs.gradle.org/current/userguide/init_scripts.html

      Gradle

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。

      上一篇:精益制造:入門(mén)需要了解的知識(shí)
      下一篇:WPS表格僅顯示公式不計(jì)算結(jié)果怎么辦(wps表格公式不計(jì)算怎么解決)
      相關(guān)文章
      亚洲日韩人妻第一页| 国产大陆亚洲精品国产| 亚洲国产一成久久精品国产成人综合 | 亚洲国产精品久久人人爱| 国产aⅴ无码专区亚洲av| 亚洲情侣偷拍精品| 亚洲中文字幕丝袜制服一区| 亚洲熟伦熟女新五十路熟妇| mm1313亚洲精品国产| 久久久久亚洲AV无码去区首| 亚洲日韩在线中文字幕综合| 国产亚洲视频在线观看| 亚洲国产成人精品女人久久久 | 久久亚洲精品中文字幕三区| 亚洲成AV人片在线观看无码| 亚洲av无码乱码国产精品| 无码专区—VA亚洲V天堂| 久久久无码精品亚洲日韩蜜臀浪潮| 91在线亚洲精品专区| tom影院亚洲国产一区二区| 毛片亚洲AV无码精品国产午夜| 亚洲人成www在线播放| 精品亚洲成在人线AV无码| 亚洲香蕉在线观看| 亚洲精品无码日韩国产不卡av| 日韩国产欧美亚洲v片| 亚洲第一区在线观看| 狠狠亚洲狠狠欧洲2019| 国产AV无码专区亚洲精品| 亚洲国产高清在线| 亚洲激情电影在线| 色在线亚洲视频www| 亚洲av午夜国产精品无码中文字| 国产综合成人亚洲区| 亚洲中文无韩国r级电影 | 亚洲伊人成无码综合网| 亚洲日韩精品A∨片无码| 亚洲av色福利天堂| 亚洲国产av高清无码| 亚洲AV日韩AV永久无码色欲 | 亚洲网站在线免费观看|