idea SpringBoot+Gradle環(huán)境配置到項目打包
一、前言
Gradle是一個基于Apache Ant和Apache Maven概念的項目自動化構(gòu)建開源工具。它使用一種基于Groovy的特定領(lǐng)域語言(DSL)來聲明項目設(shè)置,也增加了基于Kotlin語言的kotlin-based DSL,拋棄了基于XML的各種繁瑣配置。
面向Java應(yīng)用為主。當前其支持的語言C++、Java、Groovy、Kotlin、Scala和Swift,計劃未來將支持更多的語言。
二、下載gradle
官網(wǎng)下載地址:Gradle | Releases
其他下載地址:Index of /gradle/
注意:使用idea 創(chuàng)建gradle 項目需查看idea適配的gradle 版本 ,找到idea的安裝路徑進入\\plugins\gradle\lib下查看gradle 的版本,我使用的是IntelliJ IDEA 2022.2.3 ,支持的gradle7.4的版本,下載的是
三、配置環(huán)境變量
1、說明: 下載gradle-7.4-all.zip后解壓,在系統(tǒng)環(huán)境下新增
GRADLE_HOME: 解壓后你的gradle路徑
2、path 環(huán)境變量下新增:%GRADLE_HOME%\bin
3、配置maven 的環(huán)境變量:
MAVEN_HOME: 你的mavend的存放路徑
?4、path 環(huán)境變量下新增:%MAVEN_HOME%\bin
四、init.gradle
說明:由于gradle構(gòu)建時默認是從中央倉庫中去查找依賴,中央倉庫一般都在國外,速度很慢;我們可以執(zhí)行構(gòu)建時查找以來的順序,進入gradle的文件夾內(nèi)找到init.d文件夾后創(chuàng)建init.gradle(初始化構(gòu)建依賴)添加如下內(nèi)容,構(gòu)建順序按照mavenLocal() 本地倉庫、 阿里云遠端倉庫、maven中央倉庫;
allprojects { repositories { mavenLocal() maven { name "Alibaba" ; url "https://maven.aliyun.com/repository/public" } maven { name "Bstek" ; url "https://nexus.bsdn.org/content/groups/public/" } mavenCentral() } buildscript { repositories { maven { name "Alibaba" ; url 'https://maven.aliyun.com/repository/public' } maven { name "Bstek" ; url 'https://nexus.bsdn.org/content/groups/public/' } maven { name "M2" ; url 'https://plugins.gradle.org/m2/' } } } }
如圖:
五、配置本地倉庫
說明: 由于我們優(yōu)先從本地倉庫獲取依賴,環(huán)境變量中已配置maven的地址,找到Maven的安裝路徑下conf文件夾下的的settings.xml文件,修改本地倉庫的地址,默認是${user.home}/.m2/repository,建議修改成c盤外的其他地址;如下圖我的本地倉庫地址是E:/lib;
注意: gradle 和 maven 可共同使用一個本地倉庫
六、使用idea 創(chuàng)建SpringBoot Gradle項目
1、新建Test-Gradle 項目,點擊Create
2、配置gradle
點擊idea 的file-> settings, 其中 gradel user home 配置的是本地的maven 倉庫,
Use Gradle from 選擇第三個選項,配置gradle的安裝路徑
3、點擊此處,導(dǎo)入依賴
4、主要結(jié)構(gòu)介紹
build.gradle:類似maven的pom.xml,可在dependencies 下添加項目依賴
plugins { id 'java' id 'org.springframework.boot' version '3.0.0' id 'io.spring.dependency-management' version '1.1.4' } group = 'com.example' version = '0.0.1-SNAPSHOT' java { sourceCompatibility = '17' } repositories { mavenCentral() } dependencies { implementation 'org.springframework.boot:spring-boot-starter-web' implementation 'mysql:mysql-connector-java:8.0.31' implementation 'com.baomidou:mybatis-plus:3.5.3.2' testImplementation 'org.springframework.boot:spring-boot-starter-test' } tasks.named('test') { useJUnitPlatform() }
settings.gradle: 用于配置子模塊,本項目無其他子模塊;單項目構(gòu)建,settings.gradle文件是可選的;多項目構(gòu)建,settings.gradle文件是必需的,且必須位于項目的根目錄下;
rootProject.name = 'Test-Gradle'
多個模塊,如下
// 為指定父模塊的名稱 平臺根 rootProject.name = 'project-root' //包含子系統(tǒng)以及模塊 include ':project-core' //Hello系統(tǒng)模塊的加載 include ':project-hello'
5、啟動: 可通過雙擊bootRun啟動,也可通過idea 的run/debug 正常啟動
6、打包: 雙擊,可在bulid 文件夾下的libs 下生成jar 包
七、build.gradle 依賴管理簡介
dependencies { implementation 'org.springframework.boot:spring-boot-starter-web' implementation 'mysql:mysql-connector-java:8.0.31' implementation 'com.baomidou:mybatis-plus:3.5.3.2' testImplementation 'org.springframework.boot:spring-boot-starter-test' }
maven 只有 compile、provided、test、runtime 這四種 scope
1、implementation: 默認的scope。implementation的作用域會讓依賴在編譯和運行時均包含在內(nèi),但是不會暴露在類庫使用者的編譯時。 舉例,如果我們的類庫包含了gson,那么其他人使用我們的類庫時,編譯時不會出現(xiàn)gson的依賴。
2、api:和implementation類似,都是編譯和運行時都可見的依賴。但是api允許我們將自己類庫的依賴暴露給我們類庫的使用者。
3、compileOnly 和 runtimeOnly:這兩種顧名思義,一種只在編譯時可見,一種只在運行時可見。類似于 Maven的provided比較接近。
4、testImplementation:這種依賴在測試編譯時和運行時可見,類似于Maven的test作用域。
5、testCompileOnly 和 testRuntimeOnly:這兩種類似于compileOnly和runtimeOnly,但是作用于測試編譯時和運行時。
到此這篇關(guān)于idea SpringBoot+Gradle環(huán)境配置到項目打包的文章就介紹到這了,更多相關(guān)idea SpringBoot Gradle打包內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java中LambdaQueryWrapper設(shè)置自定義排序代碼示例
這篇文章主要給大家介紹了關(guān)于Java中LambdaQueryWrapper設(shè)置自定義排序的相關(guān)資料,lambdaquerywrapper是MyBatis-Plus框架中的一個查詢條件構(gòu)造器,它可以用于構(gòu)建自定義的查詢條件,需要的朋友可以參考下2023-12-12IDEA創(chuàng)建Servlet并配置web.xml的實現(xiàn)
這篇文章主要介紹了IDEA創(chuàng)建Servlet并配置web.xml的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-10-10微服務(wù)Spring?Cloud?Alibaba?的介紹及主要功能詳解
Spring?Cloud?是一個通用的微服務(wù)框架,適合于多種環(huán)境下的開發(fā),而?Spring?Cloud?Alibaba?則是為阿里巴巴技術(shù)棧量身定制的解決方案,本文給大家介紹Spring?Cloud?Alibaba?的介紹及主要功能,感興趣的朋友跟隨小編一起看看吧2024-08-08仿釘釘流程輕松實現(xiàn)JSON轉(zhuǎn)BPMN完整實現(xiàn)過程示例
這篇文章主要為大家介紹了仿釘釘流程輕松實現(xiàn)JSON轉(zhuǎn)BPMN完整實現(xiàn)過程示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-08-08