idea創(chuàng)建Springboot多模塊項(xiàng)目(聚合項(xiàng)目)
1. 創(chuàng)建父工程
1.1 創(chuàng)建一個(gè)新項(xiàng)目
1.1.1 方式一
打開 New Project --> Maven Archetype
1.1.2 方式二
或者 New Project -->New project
新版本idea是 New Project -->Java
1.2 編輯父項(xiàng)目pom.xml文件信息
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <!-- 項(xiàng)目基本信息:這里作為聚合工程的父工程 --> <modelVersion>4.0.0</modelVersion> <groupId>com.qfx</groupId> <artifactId>springboot-parentProject</artifactId> <!-- packaging要設(shè)置為pom --> <packaging>pom</packaging> <version>1.0-SNAPSHOT</version> <name>springboot-parentProject</name> <description>這是一個(gè)基于Maven的SpringBoot聚合項(xiàng)目父工程示例</description> <!-- 繼承說明:設(shè)置父類,整合第三方常用框架依賴信息(各種依賴信息),這里繼承SpringBoot提供的父工程 --> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.5.4</version> <relativePath /> <!-- lookup parent from repository --> </parent> <!-- 設(shè)置公共參數(shù) --> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <java.version>1.8</java.version> <!-- Maven install 時(shí),測(cè)試環(huán)境@Test中如果有中文輸出是亂碼,加上這句話試試 --> <argLine>-Dfile.encoding=UTF-8</argLine> </properties> <dependencies> <!-- 1.引入springboot核心包,整合SpringMVC Web組件,包含了spring-boot-starter --> <!-- 實(shí)現(xiàn)原理:Maven依賴?yán)^承關(guān)系,相當(dāng)于把第三方常用Maven依賴信息,在parent項(xiàng)目中已經(jīng)封裝好了 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!-- 2.引入SpringBoot測(cè)試場(chǎng)景啟動(dòng)器 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies> <build> <!-- 指定war包或jar包名稱,以此處為準(zhǔn),否則會(huì)帶上版本號(hào) --> <finalName>${project.name}</finalName> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project>
1.3 刪除多余文件
刪除多余的文件,僅保留.idea、.gitignore和pom.xml文件即可
項(xiàng)目結(jié)構(gòu)如下:
2. 創(chuàng)建子工程
2.1 創(chuàng)建一個(gè)新項(xiàng)目
選中父項(xiàng)目,右鍵 --> New -->Module...
2.1.1 方式一
選擇Maven Archetype
2.1.1 方式二
選擇 New Module
新版idea選擇New Module下面的Java
項(xiàng)目結(jié)構(gòu)如下:
2.2 查看父項(xiàng)目的pom.xml
可以看到父項(xiàng)目的pom.xml文件中新增了一個(gè)<modules></modules>模塊,里面已經(jīng)引用了剛剛創(chuàng)建的子項(xiàng)目
2.3 編寫子項(xiàng)目pom.xml文件信息
<"1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <!-- 項(xiàng)目基本信息:這里作為聚合工程的子工程 --> <modelVersion>4.0.0</modelVersion> <artifactId>springboot-child01</artifactId> <!-- 打包方式設(shè)置為jar,默認(rèn)jar(可不設(shè)置) --> <packaging>jar</packaging> <description>這是一個(gè)基于Maven的SpringBoot聚合項(xiàng)目子工程示例</description> <!-- 設(shè)置父類,,這里繼承springboot-parentProject父工程 --> <parent> <groupId>com.qfx</groupId> <artifactId>springboot-parentProject</artifactId> <version>1.0-SNAPSHOT</version> </parent> </project>
2.4 Maven視圖展示
如果右側(cè)的Maven部分出現(xiàn)父項(xiàng)目和子項(xiàng)目同級(jí)的情況,如下圖:
選中父項(xiàng)目 --> 右鍵 --> Unlink Maven Projects
--> Remove
--> Load Maven Project
可以看到層級(jí)可以正常顯示了
3. 測(cè)試
3.1 創(chuàng)建子項(xiàng)目啟動(dòng)類
import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class RunAppChild01 { public static void main(String[] args) { SpringApplication.run(RunAppChild01.class, args); } }
3.2 創(chuàng)建子項(xiàng)目測(cè)試類
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @RestController @RequestMapping("test01") public class TestController { @RequestMapping("hello") public String hello() { return "Hello world!"; } }
3.3 編譯項(xiàng)目
點(diǎn)擊父項(xiàng)目的install,如果有很多子項(xiàng)目,就可以省去一個(gè)一個(gè)編譯的問題
3.4 測(cè)試子項(xiàng)目
啟動(dòng)子項(xiàng)目,然后訪問剛剛編寫的Controller請(qǐng)求
4. 擴(kuò)展
- 重復(fù)第二步"創(chuàng)建子工程",可以創(chuàng)建多個(gè)子項(xiàng)目
- 想要同時(shí)啟動(dòng)多個(gè)子項(xiàng)目,需要保證每個(gè)子項(xiàng)目的端口不一樣,否則啟動(dòng)會(huì)報(bào)端口沖突的錯(cuò)誤
5.總結(jié)
文章詳細(xì)介紹了如何在idea創(chuàng)建Springboot多模塊項(xiàng)目(聚合項(xiàng)目),包括創(chuàng)建父工程和子工程、編輯pom.xml文件、編寫代碼和測(cè)試,還介紹了如何處理Maven視圖中的層級(jí)關(guān)系,并展示了如何同時(shí)啟動(dòng)多個(gè)子項(xiàng)目。
到此這篇關(guān)于idea創(chuàng)建Springboot多模塊項(xiàng)目(聚合項(xiàng)目)的文章就介紹到這了,更多相關(guān)idea創(chuàng)建Springboot聚合項(xiàng)目?jī)?nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Spring boot+beetl+i18n國(guó)際化處理的方法
這篇文章主要介紹了Spring boot+beetl+i18n國(guó)際化處理的方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-04-04Java利用MultipartFile實(shí)現(xiàn)上傳多份文件的代碼
這篇文章主要介紹了Java利用MultipartFile實(shí)現(xiàn)上傳多份文件的代碼,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-09-09SMBMS超市訂單管理系統(tǒng)的網(wǎng)站源碼
這篇文章主要介紹了SMBMS超市訂單管理系統(tǒng),本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-05-05使用@pathvariable與@requestparam碰到的一些問題及解決
這篇文章主要介紹了使用@pathvariable與@requestparam碰到的一些問題及解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-08-08SpringBoot的application.yml不生效問題及解決
這篇文章主要介紹了SpringBoot的application.yml不生效問題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-03-03關(guān)于對(duì)Java正則表達(dá)式"\\"的理解
正則表達(dá)式中,\代表轉(zhuǎn)義字符,通常是轉(zhuǎn)義一些特殊字符,下面這篇文章主要給大家介紹了關(guān)于對(duì)Java正則表達(dá)式"\\"的相關(guān)理解,需要的朋友可以參考下2022-09-09Java微服務(wù)Filter過濾器集成Sentinel實(shí)現(xiàn)網(wǎng)關(guān)限流過程詳解
這篇文章主要介紹了Java微服務(wù)Filter過濾器集成Sentinel實(shí)現(xiàn)網(wǎng)關(guān)限流過程,首先Sentinel規(guī)則的存儲(chǔ)默認(rèn)是存儲(chǔ)在內(nèi)存的,應(yīng)用重啟之后規(guī)則會(huì)丟失。因此我們通過配置中心Nacos保存規(guī)則,然后通過定時(shí)拉取Nacos數(shù)據(jù)來獲取規(guī)則配置,可以做到動(dòng)態(tài)實(shí)時(shí)的刷新規(guī)則2023-02-02