国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Maven聚合項目(微服務項目)創(chuàng)建流程,以及pom詳解

這篇具有很好參考價值的文章主要介紹了Maven聚合項目(微服務項目)創(chuàng)建流程,以及pom詳解。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

一、創(chuàng)建流程

1、首先創(chuàng)建springboot項目作為父項目

只留下pom.xml 文件,刪除src目錄及其他無用文件

Maven聚合項目(微服務項目)創(chuàng)建流程,以及pom詳解,微服務與分布式,maven,spring boot,java

?2、創(chuàng)建子項目

子項目可以是maven項目,也可以是springboot項目

Maven聚合項目(微服務項目)創(chuàng)建流程,以及pom詳解,微服務與分布式,maven,spring boot,java

3、父子項目關聯

Maven聚合項目(微服務項目)創(chuàng)建流程,以及pom詳解,微服務與分布式,maven,spring boot,java

?4、父項目中依賴管理

<?xml version="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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
<!--    繼承的springboot版本-->
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.6.3</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>

<!--    引入子模塊 -->
    <modules>
        <module>system</module>
        <module>gateway</module>
        <module>common</module>
    </modules>

    <groupId>com.matter</groupId>
    <artifactId>record</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>syh_matter_record_server</name>
    <description>syh_matter_record_server</description>
    <packaging>pom</packaging>

    <!-- 作用:公共依賴引入
         使用場景:基本所有子模塊都用到的依賴-->
    <dependencies>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
        </dependency>

        <!-- jdbc依賴包  -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency>
    </dependencies>

    <!-- 版本管理 -->
    <properties>
        <java.version>1.8</java.version>
        <spring.cloud.version>2021.0.1</spring.cloud.version>
        <spring.cloud.alibaba.version>2021.0.1.0</spring.cloud.alibaba.version>
        <mybatis.plus.version>3.4.3.4</mybatis.plus.version>
        <fastjson2.version>2.0.9</fastjson2.version>
        <pagehelper.version>1.4.3</pagehelper.version>
    </properties>

    <!-- 作用:依賴版本生命,不做依賴引入。使用dependencyManagement統(tǒng)一管理項目的版本號,確保應用的各個項目的依賴和版本一致,
               不用每個模塊項目都弄一個版本號,不利于管理。 -->
    <dependencyManagement>
        <dependencies>
            <!-- spring-loud -->
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>${spring.cloud.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>

            <!-- 阿里微服務 -->
            <dependency>
                <groupId>com.alibaba.cloud</groupId>
                <artifactId>spring-cloud-alibaba-dependencies</artifactId>
                <version>${spring.cloud.alibaba.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>

            <!-- mybatis-plus -->
            <dependency>
                <groupId>com.baomidou</groupId>
                <artifactId>mybatis-plus-boot-starter</artifactId>
                <version>${mybatis.plus.version}</version>
            </dependency>

            <!-- 阿里json解析 -->
            <dependency>
                <groupId>com.alibaba.fastjson2</groupId>
                <artifactId>fastjson2</artifactId>
                <version>${fastjson2.version}</version>
            </dependency>

            <!-- 分頁插件-->
            <dependency>
                <groupId>com.github.pagehelper</groupId>
                <artifactId>pagehelper-spring-boot-starter</artifactId>
                <version>${pagehelper.version}</version>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>
?depedencyManagement標簽介紹

在maven的聚合工程中,父模塊的pom文件中,使用dependencyManagement統(tǒng)一管理項目的版本號,確保應用的各個項目的依賴和版本一致,不用每個模塊項目都弄一個版本號,不利于管理。

dependencyManagement里只是聲明依賴,并不自動實現引入,需要子項目聲明需要用的依賴。

  1. 如果不在子項目中聲明依賴,是不會從父項目中繼承下來的;
  2. 如果在子項目中寫了該依賴項,但是沒有指定具體版本,這時候才會從父項目中繼承相應依賴,以及相應的version和scope;
  3. 如果在子項目中寫了該依賴項,并且項目中指定了版本號,那么會使用子項目中指定的版本,不再使用父項目指定的依賴版本號。

父項目使用depedencyManagement聲明依賴,子工程引入依賴不需要聲明版本

5、公共模塊使用

第一步:創(chuàng)建公共模塊 common

第二步:父子關聯

第三步:其他模塊使用公共模塊?common

dependencies標簽引入公共模塊?common,然后就可以調用方法了

Maven聚合項目(微服務項目)創(chuàng)建流程,以及pom詳解,微服務與分布式,maven,spring boot,java

二、遇到的問題以及解決方法

1、公共模塊被其他模塊引入后使用,使用正常,打包報錯?程序包 com.xxx.common.utils不存在或者xxx找不到符號

原因:SpringBoot工程打包編譯時,會生成兩種jar包,一種是普通的jar,另一種是可執(zhí)行jar。默認情況下,這兩種jar的名稱相同,在不做配置的情況下,普通的jar先生成,可執(zhí)行jar后生成,造成可執(zhí)行jar會覆蓋普通的jar。而service工程無法依賴common-utils工程的可執(zhí)行jar,所以編譯失?。撼绦虬淮嬖?。
解決:在common-utils工程中,pom.xml文件中加入配置即可:

<build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <classifier>exec</classifier>
                </configuration>
            </plugin>

        </plugins>
 </build>

2、Maven多模塊項目無法加載其他模塊(公共模塊)下的Bean

比如公共模塊中有redis序列化配置,以及redis工具類需要需要注入

Maven聚合項目(微服務項目)創(chuàng)建流程,以及pom詳解,微服務與分布式,maven,spring boot,java

?在需要使用的模塊中的啟動類添加 @ComponentScan注解

// 值為一個數組,表示掃描的路徑,遞歸掃描到最后
@ComponentScan(basePackages = {"com.example"})

?這里看到我們兩個模塊剛好前綴一樣,所以只配置一個路徑即可

Maven聚合項目(微服務項目)創(chuàng)建流程,以及pom詳解,微服務與分布式,maven,spring boot,java

?Maven聚合項目(微服務項目)創(chuàng)建流程,以及pom詳解,微服務與分布式,maven,spring boot,java

?文章來源地址http://www.zghlxwxcb.cn/news/detail-673956.html

到了這里,關于Maven聚合項目(微服務項目)創(chuàng)建流程,以及pom詳解的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • Nuxt - 項目打包部署及上線到服務器流程(SSR 服務端渲染)

    網上大部分關于 Nuxt 打包部署教程真的是可以用五花八門來形容,這對于第一次接觸的朋友簡直是無從下手。 本文將盡可能詳細的描述,打包部署及上線到服務器完整流程。 強烈建議您打開 官方文檔,與本教程對照著,這有助于您更好的理解。 您需要先了解一下 Nuxt 命令及

    2024年02月09日
    瀏覽(29)
  • Oatpp創(chuàng)建服務器項目(windows)

    Oatpp創(chuàng)建服務器項目(windows)

    一、 環(huán)境配置 1.vs2017(Oatpp需要c++11支持) 2.Oatpp-1.3.0源碼 3.CMake( 編譯成 lib 的話需要使用 ) ? 二、構建 lib 的步驟 1. 安裝 cmake 2.執(zhí)行 3. 打開項目可以編譯 三、使用 Oatpp 開發(fā) http 服務器 1. 創(chuàng)建項目 2. 添加 Oatpp 源碼 3. 配置項目 --- 添加源碼 ? 4. 添加修改個別文件的編譯輸出路徑

    2024年02月11日
    瀏覽(22)
  • k8s發(fā)布eureka集群,創(chuàng)建微服務項目

    k8s發(fā)布eureka集群,創(chuàng)建微服務項目

    1.1創(chuàng)建父級項目,父級項目pom.xml文件中的打包類型為pom 1.2創(chuàng)建eureka服務 1.1.2配置pom.xml依賴 1.1.3創(chuàng)建eureka的application.yml文件 1.2構建項目推送到docke倉庫 此步驟省略可參考以下連接 1.2.1-docker安裝配置 1.2.2-Dockerfile 文件編寫 1.2.3 -jenkins構建項目 1.2.4-Harbor倉庫搭建 2.1 由于eureka是

    2024年02月02日
    瀏覽(17)
  • SpringBoot前后端分離項目,打包、部署到服務器詳細圖文流程

    SpringBoot前后端分離項目,打包、部署到服務器詳細圖文流程

    1.修改MySQL配置 修改MySQL地址,修改需要部署的數據名,賬號和密碼 2.修改Redis配置 修改Redis地址,修改需要部署的Redis密碼(如果需要的話) 3.修改日志路徑和字符集配置 修改logback.xml中日志的保存地址 重新設置日志字符集(防止放到服務器上去之后日志出現亂碼) 1.上傳前

    2024年02月13日
    瀏覽(25)
  • JAVA-服務器搭建-創(chuàng)建web后端項目
  • 11-1 項目技術支持以及售后服務

    11-1 項目技術支持以及售后服務

    一,項目技術支持方案 網絡拓撲結構 結構選型 當計算機數量較多的時候或可靠性要求較高時,優(yōu)先采用星系,樹型頭拓撲結構,根據項目需求所示, 應采用星型拓撲,且使用雙鏈路傳輸,以及對各個部門實施邏輯上的局域網隔離,使子公司與總公司能夠相互通信 1.1項目網

    2024年01月16日
    瀏覽(18)
  • 如何將項目部署到服務器:從選擇服務器到維護應用程序的全流程指南

    將項目部署到服務器是一個重要的技能,對于開發(fā)人員來說,它是必不可少的。在本文中,我將介紹一些關于如何將項目部署到服務器的最佳實踐。 一、選擇服務器 在部署項目之前,你需要先選擇一個適合你的服務器。如果你已經有一個可用的服務器,你可以直接使用它,

    2024年02月05日
    瀏覽(30)
  • Idea+maven+springboot項目搭建系列--2 整合Rabbitmq完成客戶端&服務器端消息收發(fā)

    Idea+maven+springboot項目搭建系列--2 整合Rabbitmq完成客戶端&服務器端消息收發(fā)

    前言:本文通過springBoot -maven 框架,對Rabbitmq 進行整合,完成客戶端消息的發(fā)送和消費; 1 為什么要使用Rabbitmq: RabbitMQ 是一個可靠的、靈活的、開源的消息中間件,具有以下優(yōu)點: 異步通信:RabbitMQ 支持異步通信,使得消息發(fā)送者和接收者能夠異步處理,提高了系統(tǒng)性能和

    2024年02月07日
    瀏覽(31)
  • 新購服務器項目部署指南—— Express + Vue + Nginx+ pm2 Nodejs項目部署全流程

    新購服務器項目部署指南—— Express + Vue + Nginx+ pm2 Nodejs項目部署全流程

    書接上回:新購服務器開荒記錄(服務器安裝寶塔、Nginx、Java、Python、pip、Node、npm) 要部署Express項目,首先要保證服務器已經安裝好了Node,可以輸入: node --version 查看node的版本: 如果沒有安裝node,可以使用寶塔安裝(推薦),進入軟件商店,搜索node,選擇node.js版本管理

    2024年02月02日
    瀏覽(55)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包