Gradle基礎:10:使用gradle init進行初始化
阿新 • • 發佈:2018-11-25
很多工具都有建立建立專案骨架的初期化的功能,比如前端框架的angular,使用它的cli可以快速建立一個包含接近30個檔案的骨架能讓你快速的搭建專案。maven在建立pom的時候也可以通過命令列互動的方式進行簡化,而gradle則提供了gradle init來進行建立。
事前準備
只需要建立一個新的目錄,這裡的名稱為init
liumiaocn:init liumiao$ ls
liumiaocn:init liumiao$
gradle init
使用gradle init即可建立一個gradle專案的骨架
liumiaocn:init liumiao$ gradle init BUILD SUCCESSFUL in 0s 2 actionable tasks: 2 executed liumiaocn:init liumiao$
內容確認
檔案說明
可以看到一共建立了2個目錄和6個檔案,其中2個目錄和4個檔案都跟wrapper有關:
- gradlew:linux或者Unix下用於執行wrapper命令的Shell指令碼
- gradlew.bat:Windows下用於執行wrapper命令的批處理指令碼
- gradle-wrapper.jar:用於下載Gradle的相關程式碼實現
- gradle-wrapper.properties:wrapper所使用的配置資訊,比如gradle的版本等資訊
詳細的資訊可參看前文的說明:
另外就是settings.gradle和build.gradle:
- build.gradle: 用於存放構建相關的Task
- settings.gradle: 用於存放設定相關的資訊
詳細的資訊可參看前文的說明: - https://blog.csdn.net/liumiaocn/article/details/84192318
liumiaocn:init liumiao$ ls build.gradle gradle gradlew gradlew.bat settings.gradle liumiaocn:init liumiao$ tree . ├── build.gradle ├── gradle │ └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat └── settings.gradle 2 directories, 6 files liumiaocn:init liumiao$
內容確認
- settings.gradle
通過內容確認可以看到,settings.gradle中只設定了rootProject.name
liumiaocn:init liumiao$ cat settings.gradle
/*
* This file was generated by the Gradle 'init' task.
*
* The settings file is used to specify which projects to include in your build.
*
* Detailed information about configuring a multi-project build in Gradle can be found
* in the user guide at https://docs.gradle.org/4.10.2/userguide/multi_project_builds.html
*/
rootProject.name = 'init'
liumiaocn:init liumiao$
- build.gradle
而build.gradle則沒有任何設定,只有註釋,這也正是初始化的意義所在。
liumiaocn:init liumiao$ cat build.gradle
/*
* This file was generated by the Gradle 'init' task.
*
* This is a general purpose Gradle build.
* Learn how to create Gradle builds at https://guides.gradle.org/creating-new-gradle-builds/
*/
liumiaocn:init liumiao$
init & wrapper
init的任務是依賴於wrapper的,執行init的時候同時會執行wrapper,因為wrapper是gradle官方推薦的方式,自然在初始化的時候也會將wrapper整合進去。
使用wrapper
因為前面的文章已經為wrapper安裝了gradle5,這裡可以將其設定檔案進行修改,這裡也可以直接使用了
liumiaocn:init liumiao$ grep distributionUrl gradle/wrapper/gradle-wrapper.properties
distributionUrl=https\://services.gradle.org/distributions/gradle-4.10.2-bin.zip
liumiaocn:init liumiao$ vi gradle/wrapper/gradle-wrapper.properties
liumiaocn:init liumiao$ grep distributionUrl gradle/wrapper/gradle-wrapper.properties
distributionUrl=https\://services.gradle.org/distributions/gradle-5.0-rc-5-bin.zip
liumiaocn:init liumiao$ ./gradlew -v
------------------------------------------------------------
Gradle 5.0-rc-5
------------------------------------------------------------
Build time: 2018-11-22 19:58:45 UTC
Revision: 42e59c2484a49702234030881640aa8d8bfa6d43
Kotlin DSL: 1.0.4
Kotlin: 1.3.10
Groovy: 2.5.4
Ant: Apache Ant(TM) version 1.9.13 compiled on July 10 2018
JVM: 1.8.0_191 (Oracle Corporation 25.191-b12)
OS: Mac OS X 10.14 x86_64
liumiaocn:init liumiao$
從這裡就可以看到wrapper的使用場景,如果不同的專案和不同的gradle的版本進行組合,使用wrapper還是非常方便的。
總結
使用gradle init可以建立一個非常簡單的gradle結構,雖然非常簡單的一個功能,一點一滴地按照COC的思路則會更容易推進標準化的落地,也是值得思考的一個問題。