Hello Gradle 構(gòu)建腳本基礎(chǔ)

Settings文件

用于初始化以及工程樹(shù)的配置,設(shè)置文件的默認(rèn)名字是setting.gradle,放在根工程目錄下嗜价。
根工程相當(dāng)于Android Studio中的Project艇抠,一個(gè)根工程可以有很多子工程Moudle. 一個(gè)子工程只有在Setting文件里配置Gradle才會(huì)識(shí)別并在構(gòu)建的時(shí)候包含進(jìn)去幕庐。

include ':app'
rootProject.name='Building'
include ':common'
include ':order'
include ':personal'
include ':gradle-test'
project(':gradle-test').projectDir=new File('','/Users/xxxx/Desktop/gradle-test')

Build文件

每個(gè)Project含有一個(gè)Build文件,該文件是該P(yáng)roject構(gòu)建的入口练链,可在在這里對(duì)該P(yáng)roject進(jìn)行配置翔脱,比如配置版本,需要那些插件媒鼓,依賴那些庫(kù)届吁。

Root Project也含有Build文件,并且它可以獲取所有的Child Project绿鸣,在Root Project的Build文件里我們可以對(duì)Child Project統(tǒng)一配置疚沐,比如應(yīng)用對(duì)插件,依賴的Maven中心庫(kù)等潮模。

buildscript {
    ext.kotlin_version = '1.3.50'
    repositories {
        google()
        jcenter()

    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.6.1'
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        google()
        jcenter()

    }
}

Projects以及tasks

一個(gè)Project就是在你的業(yè)務(wù)范圍內(nèi)亮蛔,被你抽象出來(lái)的一個(gè)個(gè)獨(dú)立的模塊,你可以根據(jù)項(xiàng)目的情況抽象歸類擎厢,最后這一個(gè)個(gè)的Project組成里你的整個(gè)Gradle構(gòu)建究流。

一個(gè)Project包含很多個(gè)Task,Task是一個(gè)操作动遭,一個(gè)原子性的操作芬探,比如打包jar包,復(fù)制一份文件厘惦,編譯一次Java代碼偷仿。

  • 創(chuàng)建一個(gè)任務(wù)
task customTask1{
    doFirst{
        println 'customTask1 doFirst'
    }

    doLast{
        println 'customTask1 doLast'
    }
}


tasks.create("customTask2"){
        doFirst{
        println 'customTask2 doFirst'
    }

    doLast{
        println 'customTask2 doLast'
    }
}
  • 任務(wù)依賴
task ex35Hello{
    doLast{
        println 'hello'
    }
}


task ex35World{
    doLast{
        println 'word'
    }
}

task ex35Main(dependsOn:ex35World){
    doLast{
        println 'main'
    }
}

 task ex35MultiTask{
    dependsOn ex35Hello,ex35World
    doLast{
        println 'multiTask'
    }
 }
  • 任務(wù)間通過(guò)API控制/交互
task ex36Hello{
    println 'dowLast1'
}


ex36Hello.doFirst{
    println 'dowFirst'
}


ex36Hello.doLast{
    //Project在創(chuàng)建任務(wù)時(shí)候,同時(shí)把該任務(wù)對(duì)應(yīng)的任務(wù)名注冊(cè)為Project的一個(gè)屬性
    println project.hasProperty('ex36Hello')
    println 'dowLast2'
}
  • 自定義屬性

Project和Task都允許用戶添加額外都自定義屬性宵蕉,通過(guò)應(yīng)用所屬對(duì)應(yīng)的ext屬性即可實(shí)現(xiàn)酝静。

ext.age=18

ext{
    phone =1234567
    address=''
}


task exCustomProperty{
    println "age:${age}"

    println "phone:${phone}"
}

-自定義屬于應(yīng)用在SourceSet中

apply plugin:"java"

sourceSets.all{
    ext.resourceDir=null
}


sourceSets{
    main{
        resourceDir="main/res"
    }

    test{
        resourceDir="test/res"
    }
}


task sourceTask{
    sourceSets.each{
        println "${it.name}中的resourceDir:${it.resourceDir}"
    }
}
image.png
  • 腳本即代碼 代碼也是腳本
def buildTime(){
    def date=new Date()
    def formattedDate=date.format('yyyy-MM-dd')
    return date
}

task helloDate{
    println buildTime()
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市羡玛,隨后出現(xiàn)的幾起案子别智,更是在濱河造成了極大的恐慌,老刑警劉巖稼稿,帶你破解...
    沈念sama閱讀 222,000評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件亿遂,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡渺杉,警方通過(guò)查閱死者的電腦和手機(jī)蛇数,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,745評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)是越,“玉大人耳舅,你說(shuō)我怎么就攤上這事。” “怎么了浦徊?”我有些...
    開(kāi)封第一講書人閱讀 168,561評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵馏予,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我盔性,道長(zhǎng)霞丧,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書人閱讀 59,782評(píng)論 1 298
  • 正文 為了忘掉前任冕香,我火速辦了婚禮蛹尝,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘悉尾。我一直安慰自己突那,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,798評(píng)論 6 397
  • 文/花漫 我一把揭開(kāi)白布构眯。 她就那樣靜靜地躺著愕难,像睡著了一般。 火紅的嫁衣襯著肌膚如雪惫霸。 梳的紋絲不亂的頭發(fā)上猫缭,一...
    開(kāi)封第一講書人閱讀 52,394評(píng)論 1 310
  • 那天,我揣著相機(jī)與錄音壹店,去河邊找鬼猜丹。 笑死,一個(gè)胖子當(dāng)著我的面吹牛茫打,可吹牛的內(nèi)容都是我干的居触。 我是一名探鬼主播妖混,決...
    沈念sama閱讀 40,952評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼老赤,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了制市?” 一聲冷哼從身側(cè)響起抬旺,我...
    開(kāi)封第一講書人閱讀 39,852評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎祥楣,沒(méi)想到半個(gè)月后开财,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,409評(píng)論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡误褪,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,483評(píng)論 3 341
  • 正文 我和宋清朗相戀三年责鳍,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片兽间。...
    茶點(diǎn)故事閱讀 40,615評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡历葛,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出嘀略,到底是詐尸還是另有隱情恤溶,我是刑警寧澤乓诽,帶...
    沈念sama閱讀 36,303評(píng)論 5 350
  • 正文 年R本政府宣布,位于F島的核電站咒程,受9級(jí)特大地震影響鸠天,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜帐姻,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,979評(píng)論 3 334
  • 文/蒙蒙 一稠集、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧卖宠,春花似錦巍杈、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 32,470評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至刺洒,卻和暖如春鳖宾,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背逆航。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 33,571評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工鼎文, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人因俐。 一個(gè)月前我還...
    沈念sama閱讀 49,041評(píng)論 3 377
  • 正文 我出身青樓拇惋,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親抹剩。 傳聞我的和親對(duì)象是個(gè)殘疾皇子撑帖,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,630評(píng)論 2 359

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