在Gradle專案的根目錄下可以看到gradlew
,gradlew.bat
及grade/wrapper
目錄下的gradle-wrapper.jar
及gradle-wrapper.properites
,那Gradle Wrapper是什麼呢?
例如下面是一個名稱為demo的Gradle專案,目錄結構如下。
demo/
├─ build.gradle
├─ gradlew
├─ gradlew.bat
├─ settings.gradle
├─ gradle/
│ └─ wrapper/
│ ├─ gradle-wrapper.jar
│ └─ gradle-wrapper.properties
└─ src/
├─ main
└─ test
Gradle是Java應用程式的建構工具(build tool),系統必須安裝有Gradle來才能執行build命令。
而Gradle Wrapper的作用為即使在沒有安裝Gradle的系統中也能build Gradle專案。
Gradle Wrapper其實是一個用來執行build的腳本(script),當執行Gradle Wrapper build的時候,Gradle Wrapper會以指定版本的Gradle來執行build程序;如果該版本的Gradle不存在系統,Wrapper會去Gradle官方伺服器下載指定版本的Gradle來執行build。
使用Gradle Wrapper的好處是確保專案build的Gradle版本一致,不會因團隊成員各自下載安裝Gradle而導致因不同版本造成建構失敗。
使用Gradle Wrapper執行build的方法為,在Gradle專案根目錄中可以找到gradlew.bat
檔,此為Windows系統的batch批次檔(gradlew
則是給Linux系統如Mac使用的腳本),在指令行(cmd)執行此gradlew.bat build
即是執行Gradle Wrapper build。
D:\..\demo>gradlew.bat build
Welcome to Gradle 5.2.1!
Here are the highlights of this release:
- Define sets of dependencies that work together with Java Platform plugin
- New C++ plugins with dependency management built-in
- New C++ project types for gradle init
- Service injection into plugins and project extensions
For more details see https://docs.gradle.org/5.2.1/release-notes.html
Starting a Gradle Daemon, 1 incompatible Daemon could not be reused, use --status for details
BUILD SUCCESSFUL in 10s
2 actionable tasks: 2 executed
Gradle Wrapper build建構好的檔案預設會放在專案根目錄下的build
資料夾中。
Gradle Wrapper包含以下檔案:
gradle-wrapper.jar
:負責下載指定版本的Gradle。gradle-wrapper.properites
:Gradle Wrapper運行時的配置檔,決定Gradle Wrapper build下載的Gradle版本。gradlew
,gradlew.bat
:執行Gradle Wrapper的腳本。
參考:
沒有留言:
張貼留言