防城港市建設工程質量監(jiān)督站網站接app推廣的單子在哪接
1、Gradle 入門
1.1、Gradle 簡介
Gradle 是一款Google 推出的基于 JVM、通用靈活的項目構建工具,支持 Maven,JCenter 多種第三方倉庫;支持傳遞性依賴管理、廢棄了繁雜的xml 文件,轉而使用簡潔的、支持多種語言(例如:java、groovy 等)的 build 腳本文件。
官網地址: https://gradle.org/
學習Gradle 的原因:
- 目前已經有相當一部分公司在逐漸使用Gradle作為項目構建工具了。
- 作為Java開發(fā)程序員,如果想下載Spring、SpringBoot等Spring家族的源碼,基本上基于Gradle構建的。
總之,雖然目前市面上常見的項目構建工具有Ant、Maven、Gradle,主流還是Maven,但是未來趨勢Gradle。
1.2、常見的項目構建工具
- Ant: 2000 年 Apache 推出的純Java 編寫構建工具,通過 xml[build.xml]文件管理項目
- 優(yōu)點:使用靈活,速度快(快于 gradle 和 maven),
- 缺點:Ant 沒有強加任何編碼約定的項目目錄結構,開發(fā)人員需編寫繁雜XML 文件構建指令,對開發(fā)人員是一個挑戰(zhàn)。
- Maven: 2004 年Apache 組織推出的再次使用xml 文件[pom.xml]管理項目的構建工具。
- 優(yōu)點: 遵循一套約定大于配置的項目目錄結構,使用統(tǒng)一的GAV 坐標進行依賴管理, 側重于包管理。
- 缺點:項目構建過程僵化,配置文件編寫不夠靈活、不方便自定義組件,構建速度慢于 gradle。
- Gradle: 2012 年Google 推出的基于Groovy 語言的全新項目構建工具,集合了Ant 和 Maven 各自的優(yōu)勢。
- 優(yōu)點:集 Ant 腳本的靈活性+Maven 約定大于配置的項目目錄優(yōu)勢,支持多種遠程倉庫和插件,側重于大項目構建。
- 缺點:學習成本高、資料少、腳本靈活、版本兼容性差等。
Whatever:無論哪種項目構建工具,都有自身的優(yōu)勢和劣勢,所以選擇一款最適合自己的就是最好的。
1.3、Gradle 安裝
1.3.1、Gradle 安裝說明
Gradle官網:https://gradle.org/
Gradle官方下載安裝教程頁面:https://gradle.org/install/Gradle
官方用戶手冊:https://docs.gradle.org/current/userguide/userguide.html
SpringBoot 官方文檔明確指出,目前SpringBoot 的 Gradle 插件需要gradle6.8 版本及以上,所以我們這里選擇 7.x 版本。
其中SpringBoot 與Gradle 存在版本兼容問題,Gradle 與Idea 也存在兼容問題,所以考慮到 java 程序員會使用SpringBoot,所以要選擇 6.8 版本及高于 6.8 版本的Gradle,那么相應的idea 版本也要升級,不能太老哦。
具體參考文檔:https://docs.spring.io/spring-boot/docs/2.5.0/gradle-plugin/reference/htmlsingle/#getting-started
1.3.2、安裝JDK
要求Jdk 為 1.8 或者 1.8 版本以上。
1.3.3、下載并解壓到指定目錄
官網
下載
下載完整版的
解壓到指定目錄
1.3.4、配置環(huán)境變量
先添加GRADLE_HOME
同時將gradle目錄下的bin添加到path中
特別注意:這里我們接著再配置一個GRADLE_USER_HOME 環(huán)境變量:GRADLE_USER_HOME 相當于配置Gradle 本地倉庫位置和 Gradle Wrapper 緩存目錄。
Gradle本地倉庫可以和Maven本地倉庫目錄一致
1.3.5、檢測是否安裝成功
gradle -v 或者 gradle --version: 通過gradle -v或者 gradle --version檢測是否安裝成功
Gradle 7.5.1安裝成功的提示文本
1.4、Gradle 項目目錄結構
Gradle 項目默認目錄結構和Maven 項目的目錄結構一致,都是基于約定大于配置【Convention Over Configuration】。其完整項目目錄結構如下所示:
Tips:
- 只有war工程才有webapp目錄,對于普通的jar工程并沒有webapp目錄
- gradlew與gradlew.bat執(zhí)行的指定wrapper版本中的gradle指令,不是本地安裝的gradle指令哦。