【Java】【Gradle】Gradle構建SpringBoot項目,Gradle模塊化管理

爲什麼我要使用Gradle

  • 我是個Android開發者,對Gradle接觸較多,較爲熟悉,使用Gradle對我問題不大
  • Gradle比Maven更加簡潔靈活,代碼看起來更加美觀
  • 我愛研究探索,喜歡折騰,想嘗試新事物。用Gradle構建SpringBoot項目是我自己想出來的,後來去網上一查,還真的可以這樣做
  • 用了一段時間熟悉了之後,發現還是挺方便的。但是Idea中的Gradle和Studio中的Gradle用法還是稍有區別的,因爲它們的主程序版本和編譯插件都不一樣。所以我整理了一下使用方法,分享給大家,這樣大家就可以快速上手,少走彎路

創建父級工程

由於一個工程可能包含多個模塊,因此我們需要有個父級工程來包含它們,以方便以後的管理
即便我們的代碼只有一個模塊,從規範的角度來說,也應當有個父級工程,以方便日後的擴展

我們新建一個名爲【project-hello】的文件夾,作爲父級工程的存放位置
在這裏插入圖片描述
在這裏插入圖片描述
由於父級工程只是一個容器,所以我們不需要代碼目錄,可以從項目結構中刪除,當然也可以留下來用於存放測試代碼
在【Project Structure】界面中,將【src目錄】標記爲【Excluded】,確定後手動刪除該文件夾即可
在這裏插入圖片描述

創建子模塊

在工程目錄上右鍵,【New】-【Module】,選擇【Gradle】和【Java】,和創建工程時操作一樣,即可創建多個子模塊
在這裏插入圖片描述
在這裏插入圖片描述

引入外部模塊

如果我們不想新建模塊,而是希望使用已有的代碼作爲模塊,那麼有兩種方法
一種是將該模塊的代碼直接拷到當前工程下,在【settings.gradle】中添加【include ‘xxx’】即可
另一種方法是單獨寫一行腳本,來指定該模塊的位置,但是Gradle只支持通過相對路徑來指定位置
如果不是多個工程共享同一份代碼的話,建議使用第一種方式,比較放在一起更加容易維護、備份、打包
在這裏插入圖片描述

模塊間依賴

在模塊的【build.gradle】中添加以下腳本,即可引用其它模塊,外部模塊也是一樣的,因此模塊名都已經在工程中定義了,不管是同工程的還是外部的,都可以直接使用


	dependencies {
	
	    implementation project(":lib-commons")
	    implementation project(":lib-external")
	}
	

在這裏插入圖片描述
添加SpringBoot依賴

直到現在,我們尚未提及任何關於Spring的事情
其實Spring項目和Java項目並無區別,只是多了相應的依賴庫和Spring編譯插件而已
我們只需在【build.gradle】增加相關配置,就可以把一個普通的Java項目升級爲SpringBoot後臺項目


	plugins {
	    id 'org.springframework.boot' version '2.1.6.RELEASE'
	    id 'java'
	}
	
	apply plugin: 'io.spring.dependency-management'
	
	repositories {
	    mavenCentral()
	}
	
	dependencies {
	
	    //模塊引用
	    implementation project(":lib-commons")
	    implementation project(":lib-external")
	
	    //SpringBoot
	    implementation 'org.springframework.boot:spring-boot-starter-web'
	    implementation 'org.springframework.boot:spring-boot-starter-validation'
	    annotationProcessor 'org.springframework.boot:spring-boot-configuration-processor'
	
	    //MysqlConnector
	    implementation 'mysql:mysql-connector-java'
	
	    //MybatisPlus
	    implementation 'com.baomidou:mybatis-plus-boot-starter:3.1.2'
	
	    //通用基礎庫
	    implementation 'org.apache.commons:commons-lang3:3.9'
	    implementation 'commons-codec:commons-codec:1.12'
	    implementation 'jaxen:jaxen:1.2.0'
	    implementation 'javax.annotation:javax.annotation-api:1.2'
	
	    //Json Gson
	    implementation 'org.json:json:20180813'
	    implementation 'com.google.code.gson:gson:2.8.5'
	
	    //網絡請求庫:OkHttp
	    implementation 'com.squareup.okhttp3:okhttp:3.10.0'
	    implementation 'com.squareup.okio:okio:1.14.1'
	
	    //Socket庫:SocketIO
	    implementation 'com.corundumstudio.socketio:netty-socketio:1.7.17'
	
	    //Lombok註解插件
	    implementation 'org.projectlombok:lombok:1.16.8'
	    annotationProcessor 'org.projectlombok:lombok:1.16.8'
	
	    //控制檯彩色字體庫
	    implementation 'org.fusesource.jansi:jansi:1.18'
	
	}

添加SpringBoot配置文件

【resources/application.properties】是SpringBoot默認的配置文件,我們需要添加一些必要配置服務才能啓動
比如項目地址,項目端口,數據庫地址,數據庫帳號密碼等等,這裏數據庫大家需要改成自己的可用數據庫


	#服務地址
	server.port=8001
	server.servlet.context-path=/hello
	server.servlet.session.timeout=2000s
	
	#數據庫配置
	spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
	spring.datasource.url=jdbc:mysql://192.168.8.83:3306/dwdb2
	spring.datasource.username=root
	spring.datasource.password=123456

除了【application.properties】這個文件之外,我們還可以建立自己的配置文件,用於存儲業務配置
建議不要把所有東西都寫在【application.properties】裏面,會影響可讀性,這個文件只存儲Spring框架的配置即可
比如這裏我們就新建了一個【user_config.properties】文件,我們可以自己通過【java.util.Properties】類來讀取配置

添加Application類

Application類是SpringBoot默認的啓動入口,其實一個空的SpringBoot項目只需要一個Application類就夠了
Application類的作用是啓動SpringBoot服務,SpringBoot服務啓動後,就會自動去檢索包目錄查找所有的類文件
SpringBoot服務根據註解來判斷是否需要創建對應的Controller,Mapper,Bean的實例
因此只有Application類是必需的,其它類都是根據需要來添加的


	package com.easing.backend.tools;
	
	import org.springframework.stereotype.Controller;
	import org.springframework.web.bind.annotation.RequestMapping;
	import org.springframework.web.bind.annotation.ResponseBody;
	
	@Controller
	@RequestMapping("/api")
	public class ApiController {
	
	    @ResponseBody
	    @RequestMapping("/about")
	    public String about() {
	        return "a SpringBoot Project with Gradle";
	    }
	
	}
	

手動修改工程

Gradle項目結構其實非常簡單,無非就是三點:
工程通過settings.gradle文件來定義子模塊
模塊通過build.gradle來定義引用的庫或其它模塊
通過Project Structure菜單來配置哪些目錄是代碼,哪些目錄是資源,哪些目錄應該被排除出項目

瞭解項目結構和構建原理,可以加深我們對構建工具的理解,出了問題時可以自己去查找問題所在
如果不理解文件之間的關聯,只會通過可視化菜單來操作,出了問題經常就會手足無措

Gradle項目結構一般如下
main旁邊的test文件夾是用於單元測試的目錄,如果不需要可以按兩次Delete刪除
第一次Delete將目錄從模塊中移除,第二次Delete徹底刪除文件
在這裏插入圖片描述
源代碼下載

下載地址:a SpringBoot Project with Gradle

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章