SpringCloud如何搭建一個(gè)多模塊項(xiàng)目
在spring cloud系列章節(jié)中,本來(lái)已經(jīng)寫(xiě)了幾個(gè)章節(jié)了,但是自己看起來(lái)有些東西寫(xiě)得比較雜,所以重構(gòu)了一下springcloud的章節(jié)內(nèi)容,新寫(xiě)了本章節(jié),先教大家在工作中如何搭建一個(gè)多模塊的springcloud項(xiàng)目。
本章及后面章節(jié),我們使用的開(kāi)發(fā)環(huán)境是 spring tool suite (sts) + maven (當(dāng)然你也可以使用IDEA + Gradle,目前使用的公司也很多)。
一、新建一個(gè)父maven project模塊
File->new->other->maven->maven project
記得勾選紅框,我們僅僅只是需要該項(xiàng)目的pom.xml文件
如果生成后,有src文件,我們刪除該文件,只保留pom.xml文件
修改pom.xml文件內(nèi)容
<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"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.1.4.RELEASE</version> <relativePath/> <!-- lookup parent from repository --> </parent> <groupId>com.haly</groupId> <artifactId>springcloud</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>pom</packaging> <name>springcloud</name> <url>http://maven.apache.org</url> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <spring-cloud.version>Greenwich.SR1</spring-cloud.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies> <dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-dependencies</artifactId> <version>${spring-cloud.version}</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project>
注意: 很多同學(xué)在搭建項(xiàng)目的過(guò)程中,引入依賴(lài)時(shí),pom文件總是報(bào)錯(cuò),這一般是springboot和springcloud的版本不一致造成。
這個(gè)系列所有章節(jié),我們使用的版本為 springboot :2.1.4.RELEASE springcloud:Greenwich.SR1
我們新建這個(gè)父工程后,發(fā)現(xiàn)它其實(shí)只有一個(gè)pom文件,沒(méi)有什么業(yè)務(wù)功能,但是工作中我們都會(huì)新建一個(gè)這樣的項(xiàng)目目錄,它的作用如下
1. 工作中,我們整個(gè)項(xiàng)目的名稱(chēng)就是這個(gè)maven項(xiàng)目的名稱(chēng),在svn中拉取項(xiàng)目下,只要拉這個(gè)主工程的分支就行了。
2.它的pom文件會(huì)定義為父pom,后續(xù)的module工程可以繼承該pom,所以很多module工程共用的配置,都可以放到這里。
二、新建一個(gè)springcloud-eureka-server子模塊
選擇主項(xiàng)目springcloud,右鍵->Maven->new maven module project
生成項(xiàng)目目錄結(jié)構(gòu)如下:
注意:有些同學(xué)新建子項(xiàng)目完成后,項(xiàng)目的展示都是并排著,沒(méi)有展示出父子關(guān)系,需要調(diào)整一個(gè)展示形式,才會(huì)出現(xiàn)上面的項(xiàng)目結(jié)構(gòu)。
點(diǎn)擊上圖標(biāo)紅的地方 -> projects Presentation - > Hierarchical
如果生成的springcloud-eureka-server模塊沒(méi)有resources目錄
springcloud-eureka-server上右鍵點(diǎn)擊項(xiàng)目-> new->Source Folder
三、新建一個(gè)springcloud-eureka-client子模塊
參考新建springcloud-eureka-server模塊的步驟,新增一個(gè)springcloud-eureka-client模塊
生成的項(xiàng)目結(jié)構(gòu)如下:
這時(shí),我們?nèi)ジ疙?xiàng)目springcloud中打開(kāi)pom.xml文件,會(huì)發(fā)現(xiàn)自動(dòng)增加了新建子模塊的引入
<modules> <module>springcloud-eureka-server</module> <module>springcloud-eureka-client</module> </modules>
四、總結(jié):
通過(guò)上面的步驟,我們已經(jīng)搭建好了一個(gè)多模塊的springcloud項(xiàng)目,但是這僅僅只是一個(gè)項(xiàng)目架構(gòu),如果需要運(yùn)行起來(lái),我們還需要做如下三步
1. 修改子模塊的pom.xml文件,增加對(duì)應(yīng)模塊功能需要的依賴(lài)包
2. 在src/main/resources目錄下,新增application.properties文件,配置項(xiàng)目的配置項(xiàng)
3. 在src/main/java目錄的com.haly包下,新增對(duì)應(yīng)模塊的啟動(dòng)類(lèi)
如何運(yùn)行多模塊springcloud項(xiàng)目,請(qǐng)看下一章節(jié):一起來(lái)學(xué)Spring Cloud | 第二章:服務(wù)注冊(cè)和發(fā)現(xiàn)組件 (Eureka)
到此這篇關(guān)于SpringCloud如何搭建一個(gè)多模塊項(xiàng)目的文章就介紹到這了,更多相關(guān)SpringCloud 多模塊項(xiàng)目?jī)?nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
mybatisplus?selectOne查詢(xún),有數(shù)據(jù),但返回為null問(wèn)題
這篇文章主要介紹了mybatisplus?selectOne查詢(xún),有數(shù)據(jù),但返回為null問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-11-11出現(xiàn)java.util.ConcurrentModificationException 問(wèn)題及解決辦法
這篇文章主要介紹了出現(xiàn)java.util.ConcurrentModificationException 問(wèn)題及解決辦法的相關(guān)資料,需要的朋友可以參考下2017-02-02SpringBoot中使用異步調(diào)度程序的高級(jí)方法
本文主要介紹了SpringBoot中使用異步調(diào)度程序的高級(jí)方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2024-07-07springboot項(xiàng)目中mapper.xml文件找不到的三種解決方案
這篇文章主要介紹了springboot項(xiàng)目中mapper.xml文件找不到的三種解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-01-01SpringCloud升級(jí)2020.0.x版之OpenFeign簡(jiǎn)介與使用實(shí)現(xiàn)思路
在微服務(wù)系統(tǒng)中,我們經(jīng)常會(huì)進(jìn)行 RPC 調(diào)用。在 Spring Cloud 體系中,RPC 調(diào)用一般就是 HTTP 協(xié)議的調(diào)用。對(duì)于每次調(diào)用,都要經(jīng)過(guò)一系列詳細(xì)步驟,接下來(lái)通過(guò)本文給大家介紹SpringCloud OpenFeign簡(jiǎn)介與使用,感興趣的朋友一起看看吧2021-10-10JavaWeb 文件的上傳和下載功能簡(jiǎn)單實(shí)現(xiàn)代碼
這篇文章主要介紹了JavaWeb 文件的上傳和下載功能簡(jiǎn)單實(shí)現(xiàn)代碼,需要的朋友可以參考下2017-04-04Java抽象類(lèi)和抽象方法定義與用法實(shí)例詳解
這篇文章主要介紹了Java抽象類(lèi)和抽象方法定義與用法,結(jié)合實(shí)例形式詳細(xì)分析了Java抽象類(lèi)和抽象方法相關(guān)原理、定義、使用方法及操作注意事項(xiàng),需要的朋友可以參考下2019-11-11java實(shí)現(xiàn)兩張圖片2D翻轉(zhuǎn)動(dòng)畫(huà)效果
這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)兩張圖片2D翻轉(zhuǎn)動(dòng)畫(huà)效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-08-08Java如何優(yōu)雅地關(guān)閉資源try-with-resource及其異常抑制
這篇文章主要介紹了Java如何優(yōu)雅地關(guān)閉資源try-with-resource及其異常抑制,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2019-02-02