gradle和gradlew的區(qū)別

Gradle Wrapper

當(dāng)把本地一個項目放入到遠(yuǎn)程版本庫的時候上煤,如果這個項目是以gradle構(gòu)建的呻澜,那么其他人從遠(yuǎn)程倉庫拉取代碼之后如果本地沒有安裝過gradle會無法編譯運(yùn)行,如果對gradle不熟悉怕磨,會使得無法很好的去快速構(gòu)建項目代碼演痒。所以gradle可以自動生成一鍵運(yùn)行的腳本,把這些一起上傳遠(yuǎn)程倉庫妄讯,使得即使沒有安裝gradle也可以自動去安裝并且編譯項目代碼所刀。

  • Gradle是個構(gòu)建系統(tǒng),能夠簡化你的編譯捞挥、打包浮创、測試過程。熟悉Java的同學(xué)砌函,可以把Gradle類比成Maven斩披。
  • Gradle Wrapper的作用是簡化Gradle本身的安裝、部署讹俊。不同版本的項目可能需要不同版本的Gradle垦沉,手工部署的話比較麻煩,而且可能產(chǎn)生沖突仍劈,所以需要Gradle Wrapper幫你搞定這些事情厕倍。Gradle Wrapper是Gradle項目的一部分。

簡單的gradle wrapper生成

【gradle wrapper生成】

我們在新建的目錄下使用命令行輸入gradle wrapper命令:

在新建的目錄下可以看到以下文件:

【gradle wrapper文件說明】

|____gradle
| |____wrapper
| | |____gradle-wrapper.jar  //具體業(yè)務(wù)邏輯
| | |____gradle-wrapper.properties  //配置文件
|____gradlew  //Linux 下可執(zhí)行腳本
|____gradlew.bat  //Windows 下可執(zhí)行腳本

(1)gradlew.bat

gradlew.bat是bat 腳本贩疙,Windows 用戶可以通過它執(zhí)行 Gradle 任務(wù)讹弯,配合gradle文件夾使用。

而Linux使用的是gradlew这溅,gradlew是一個shell 腳本组民,Unix 用戶可以通過它來執(zhí)行 Gradle 任務(wù)。

(2)gradle-wrapper.jar

gradle-wrapper.jar是Gradle Wrapper的主體功能包(wrapper 的代碼所在)悲靴。項目打包必須要有的臭胜,不然無法去執(zhí)行g(shù)radlew。

(3)gradle-wrapper.properties

gradle-wrapper.properties文件主要指定了該項目需要什么版本的Gradle,從哪里下載該版本的Gradle耸三,下載下來放到哪里乱陡。從圖示項目中可以知道我要使用gradle-3.5版本。

我們使用gradlew命令的使用仪壮,會根據(jù)這個文件來使用對應(yīng)的gradle進(jìn)行構(gòu)建憨颠。當(dāng)本地GRADLE_USER_HOME(當(dāng)前用戶目錄,一般指~/.gradle)中的~/.gradle/wrapper/dists沒有安裝gradle時睛驳,將會自動從此地址distributionUrl中下載gradle烙心,之后的執(zhí)行將不會再次下載安裝。

【文件如何配合使用】

當(dāng)從版本庫下載代碼之后乏沸,如果你本機(jī)安裝過gradle淫茵,當(dāng)然直接直接編譯運(yùn)行既可。但是對沒有安裝gradle的用戶蹬跃,可以執(zhí)行項目根目錄下的gradlew.bat腳本(Linux是執(zhí)行gradlew命令)匙瘪,將會在gradle-wrapper.properties中的~/.gradle/wrapper/dists目錄中首次下載并安裝gradle并可以編譯代碼,一個指令可以下載并安裝gradle來構(gòu)建項目蝶缀,由此可見非常方便丹喻。大概流程如下:

  1. 解析gradle-wrapper.properties文件,獲取項目需要的 gradle 版本下載地址翁都。
  2. 判斷本地用戶目錄下的~/.gradle目錄下是否存在該版本碍论,不存在該版本,走第3點(diǎn)柄慰,存在走第4點(diǎn)鳍悠。
  3. 下載gradle-wrapper.properties指定版本,并解壓到用戶目錄的下 ~/.gradle文件下坐搔。
  4. 利用 ~/.gradle目錄下對應(yīng)的版本的 gradle 進(jìn)行相應(yīng)自動編譯操作藏研。

將Wrapper添加到Gradle項目

在命令行中運(yùn)行 wrappertask 即可配置Wrapper,如下:

$gradle wrapper --gradle-version 2.8
:wrapper
BUILD SUCCESSFUL
Total time: 3.546 secs

運(yùn)行完畢后概行,可以看到在項目的更目錄中多了上面提到的一些文件和目錄:

除了直接在命令行執(zhí)行外蠢挡,也可以在build.gradle文件中添加一個Wrapper task:

task wrapper(type: Wrapper){  // type: Wrapper中的Wrapper開頭W必須大寫
 gradleVersion='2.8'
 distributionBase='GRADLE_USER_HOME'
 distributionPath='wrapper/dists'
 zipStoreBase='GRADLE_USER_HOME'
 zipStorePath='wrapper/dists'
 distributionUrl=https\://services.gradle.org/distributions/gradle-2.8-all.zip
}
//每一項都可單獨(dú)設(shè)置,gradle-2.8-all.zip表示下載該版本Gradle的源碼

然后執(zhí)行這個task:

gradle -q wrapper
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末凳忙,一起剝皮案震驚了整個濱河市业踏,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌消略,老刑警劉巖堡称,帶你破解...
    沈念sama閱讀 211,265評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異艺演,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,078評論 2 385
  • 文/潘曉璐 我一進(jìn)店門胎撤,熙熙樓的掌柜王于貴愁眉苦臉地迎上來晓殊,“玉大人,你說我怎么就攤上這事伤提∥装常” “怎么了?”我有些...
    開封第一講書人閱讀 156,852評論 0 347
  • 文/不壞的土叔 我叫張陵肿男,是天一觀的道長介汹。 經(jīng)常有香客問我,道長舶沛,這世上最難降的妖魔是什么嘹承? 我笑而不...
    開封第一講書人閱讀 56,408評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮如庭,結(jié)果婚禮上叹卷,老公的妹妹穿的比我還像新娘。我一直安慰自己坪它,他們只是感情好骤竹,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,445評論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著往毡,像睡著了一般蒙揣。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上开瞭,一...
    開封第一講書人閱讀 49,772評論 1 290
  • 那天懒震,我揣著相機(jī)與錄音,去河邊找鬼惩阶。 笑死挎狸,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的断楷。 我是一名探鬼主播锨匆,決...
    沈念sama閱讀 38,921評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼冬筒!你這毒婦竟也來了恐锣?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,688評論 0 266
  • 序言:老撾萬榮一對情侶失蹤舞痰,失蹤者是張志新(化名)和其女友劉穎土榴,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體响牛,經(jīng)...
    沈念sama閱讀 44,130評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡玷禽,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,467評論 2 325
  • 正文 我和宋清朗相戀三年赫段,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片矢赁。...
    茶點(diǎn)故事閱讀 38,617評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡糯笙,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出撩银,到底是詐尸還是另有隱情给涕,我是刑警寧澤,帶...
    沈念sama閱讀 34,276評論 4 329
  • 正文 年R本政府宣布额获,位于F島的核電站够庙,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏抄邀。R本人自食惡果不足惜耘眨,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,882評論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望撤摸。 院中可真熱鬧毅桃,春花似錦、人聲如沸准夷。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,740評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽衫嵌。三九已至读宙,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間楔绞,已是汗流浹背结闸。 一陣腳步聲響...
    開封第一講書人閱讀 31,967評論 1 265
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留酒朵,地道東北人桦锄。 一個月前我還...
    沈念sama閱讀 46,315評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像蔫耽,于是被迫代替她去往敵國和親结耀。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,486評論 2 348

推薦閱讀更多精彩內(nèi)容

  • 那片大海匙铡,一直是心中的向往 小時候無聊图甜,在電視里看到那片藍(lán)色的大海 奶奶家里晚上搬著板凳坐在小院子里 趴在奶奶的懷...
    谷涼閱讀 222評論 0 0
  • 回望兩千零七。 μ’s(熱心市民小胡的不完全 整理 2017的開始鳖眼。 里p 彩彩 emi 新年賀會-emi pil...
    好哈哈哈哈哈哈胡閱讀 166評論 0 0
  • 源鏈接 注意 椇谝悖空間分靜態(tài)分配和動態(tài)分配兩種。靜態(tài)分配是編譯器完成的钦讳,比如自動變量(auto)的分配矿瘦。動態(tài)分配由a...
    yiltoncent閱讀 132評論 0 0