[老實李] Gradle學習筆記-使用kotlin編寫gradle指令碼
1、到官網下載安裝,配置環境變數
https://gradle.org/
點選Binary-only,下載壓縮包,解壓並配置環境變數(bin目錄)
![3804905-190f56de45ba7a91.png](https://i.iter01.com/images/a6b51edd89ff4b19f25e49a58fc13933ec66ec60400d9d6a095f148f24a72cd8.png)
在cmd測試gradle是否配置成功
![3804905-dcb8ff34225d1323.png](https://i.iter01.com/images/3d896a669b2e16591b37bf74cd9d7c275d81ff1533ce344d04304dc2568c0218.png)
2、入門演示
建立新工程
![3804905-3aa3799755e43d5b.png](https://i.iter01.com/images/1b36b13767b6625b754e98bfb3c6719eaec8f9b014efb923de5824c531103526.png)
(1)修改gradle -> wrapper -> gradle-wrapper.properties
修改 distributionUrl為本地的gradle壓縮包地址
( 2 )修改build.gradle的檔名為build.gradle.kts
這樣就可以使用kotlin來編寫gradle指令碼了。
(3)重啟IDE 為了防止出現一些問題 ok,工程配置完成,接下來我們在build.gradle.kts中寫點東西
plugins{
application //使用構建工具,這個構建工具就是一個應用程式的名字
}
application{
mainClassName = "Main" //程式主入口
}
Tips:開啟gradle皮膚
![3804905-41aef5dacb3973fe.png](https://i.iter01.com/images/d0e8b4dd9a024d936b4d3a3e7512f238ec524600dd350cd01e63ad4c06db6a30.png)
程式示範,建立一個Main的java類,列印個“Hello gradle”。因為之前已經在build.gradle.kts檔案下寫了mainClassName就是我們建立的Main.java類,點選gradle皮膚上的run方法就會執行Main.java中的main方法,
![3804905-a118646136c25205.png](https://i.iter01.com/images/cd746be7b6a5bcbabd9d94e220f5306081736d2e21e40e02f8c46f1b39dfc6cb.png)
點選distZip就會在build資料夾下生成一個zip壓縮包。這個壓縮包解壓之後就是一個jar包和一個在windows平臺下執行的.bat檔案,還有一個在Linux系統下執行的檔案。可以再當前資料夾下直接CMD中執行xxx.bat就會列印出“Hello gradle”
![3804905-54714291d8703b31.png](https://i.iter01.com/images/cd836a8392f8b9ea6a224d98a73546d714a5e7a4ee357450226ca7338f20f3eb.png)
![3804905-046cc31a0ce752c3.png](https://i.iter01.com/images/6af7de415cd9d032968e276e5e473d48135e5c94c32fc64d1df69387be36a836.png)
![3804905-ba621bc7e933055d.png](https://i.iter01.com/images/ec9c19f2811365c21bda7b4c9942e912adafda21c4625294d80902db208e1da5.png)
![3804905-53683787d6f62940.png](https://i.iter01.com/images/d3b4580d4eecc4ff5745adc7e53491315afc7c88795834acf5a8fac0c228b652.png)
![3804905-8b69e15d60b09f24.png](https://i.iter01.com/images/a16300b0bf0319072ccbf62f6644803518c5a6fa4a281afc8edaa44d91d6e48c.png)
![3804905-45fbf8dd01c5bab3.png](https://i.iter01.com/images/f676c66eac146d525b46ede2597f042e657f699f92ceff2bd1b7f899b45d5780.png)
3.Gradle的靈魂:Project 和 Task
概念:
Gradle本身的領域物件主要有Project和Task
Project為Task提供了執行的容器和上下文
Task案例,Task的依賴
![3804905-5640979c4be438e9.png](https://i.iter01.com/images/401f6aa4c10c13934ef9714cdc28cc03ecff88f317f18d6b8b36dd71938052d4.png)
Task的生命週期
掃描&執行
掃描時就會執行列印操作。(當點選closeDoor task的時候,依次列印出“關冰箱門”,“開冰箱門”,“放入大象”,這顯然是不符合我們定義的dependsOn的,這便是Task的掃描生命週期。)
![3804905-2a6b4472d1a2a8a7.png](https://i.iter01.com/images/148dc7aea9f2b9de0a59de4d0b6abe08088d289453e27057bb0e7fafc286e85b.png)
要想在Task執行的時候在進行列印操作,那麼就需要使用doFirst函式還包含程式碼內容。(加上dofirst函式,程式碼執行邏輯正常。)
![3804905-a286c3d305e3bc8c.png](https://i.iter01.com/images/689108caa05ae927fd122403ccb988ed8ba878c2c25a5bd50bd7747df89cc338.png)
Tasks任務集
多個任務的合集就是任務集
tasks{
"opendoor"{
}
"putelephont"{
}.dependsOn("opendoor")
"closedoor"{
}.dependsOn("putelephont")
}
Task的預設屬性
task("println"){
project.properties.forEach{
t, any ->
println("$t:$any")
}
}
Task預設任務
task("println"){
project.properties.forEach{
t, any ->
println("$t:$any")
}
}
defaultTasks("println")
//這樣,當在Terminal輸入:gradle 的時候就會預設的輸出任務“println”的內容
4.Gradle增量式更新
一般來說,程式碼發生變化之後進行編譯會將所有的程式碼都給編譯一遍,而Gradle支援的增量式更新就是隻編譯程式碼有改動的部分,大大提高了編譯的效率。
5.Gradle常用外掛
什麼是外掛:外掛是包含一個或多個任務的合集
application外掛:就是編譯出一個程式,可以是kotlin應用程式,也可是java應用程式,我們剛開始做的hello gradle就是用的這個
java外掛:只能編譯出java應用程式
war外掛:war包,放到tomcat中執行的
相關文章
- Android Gradle 學習筆記整理AndroidGradle筆記
- Gradle外掛學習筆記(一)Gradle筆記
- Gradle外掛學習筆記(四)Gradle筆記
- 【SpringBoot學習筆記】-IDEA中使用gradle和MybatisSpring Boot筆記IdeaGradleMyBatis
- 使用Gradle編寫蒲公英自動上傳安裝包和更新說明指令碼Gradle指令碼
- Android學習筆記之build.gradle檔案Android筆記UIGradle
- Gradle Kotlin DSL 1.0GradleKotlin
- Gradle 教程學習Gradle
- Gradle自動化專案構建之Gradle學習及實戰Gradle
- Gradle指令碼:上傳Apk到蒲公英Gradle指令碼APK
- Gradle Kotlin DSL遷移指南GradleKotlin
- springboot: kotlin + gradle + jdbc(mysql) demoSpring BootKotlinGradleJDBCMySql
- 修改gradle指令碼,加速spring4.1原始碼編譯構建速度Gradle指令碼Spring原始碼編譯
- 不得不學之「 Gradle」 ③ 構建指令碼基礎Gradle指令碼
- Gradle系列之構建指令碼基礎Gradle指令碼
- Gradle Kotlin DSL , 你知道它嗎?GradleKotlin
- Gradle 編譯警告亂碼問題Gradle編譯
- 彙編學習筆記07——BCD碼及調整指令筆記
- Redis學習筆記(三)使用Lua指令碼實現分散式鎖Redis筆記指令碼分散式
- shell指令碼學習筆記-1指令碼筆記
- 不得不學之「 Gradle」 ④ Gradle 任務Gradle
- 不得不學之「 Gradle」 ⑤ Gradle 外掛Gradle
- 彙編學習筆記之轉移指令筆記
- Gradle指南之從Groovy遷移到KotlinGradleKotlin
- Gradle 與 AGP 構建 API: 如何編寫外掛GradleAPI
- webpack 學習筆記:實戰之 babel 編碼Web筆記Babel
- Kotlin for Java Developers 學習筆記KotlinJavaDeveloper筆記
- Gradle 使用技巧(一)Gradle
- 【Android 修煉手冊】Gradle 篇 -- Gradle 的基本使用AndroidGradle
- Gradle最佳實踐Gradle
- 其實 Gradle Transform 就是個紙老虎 —— Gradle 系列(4)GradleORM
- Gradle學習系列----多專案構建Gradle
- Gradle學習系列—-多專案構建Gradle
- Angularjs學習筆記指令AngularJS筆記
- Vue 學習筆記——指令Vue筆記
- Gradle系列之Gradle外掛Gradle
- Gradle系列(四) Gradle外掛Gradle
- 李巨集毅機器學習-學習筆記機器學習筆記
- springboot gradle demo (使用 Gradle 構建的 Spring Boot專案)Spring BootGradle