聚合工程的微服务之创建父工程和子模块

1、创建父工程

创建一个普通的Maven项目,File》New 》Project 》Maven Archetype

父级的pom文件只作项目子模块的整合,在maven install时不会生成jar/war压缩包。
创建好后删除刚创建工程里不需要的文件, 只保留:.idea 文件夹 、项目 pom 文件,如果没有.gitignore文件,就在根目录下自己添加一个。

在pom.xml文件中手动修改packaging类型为pom类型

<!-- 父项目,指定为pom类型,即父级的pom文件只作项目子模块的整合,在maven install时不会生成jar/war压缩包。-->
<packaging>pom</packaging>

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">
  <modelVersion>4.0.0</modelVersion>

  <groupId>com.quick</groupId>
  <artifactId>quick-cloud</artifactId>
  <version>1.0</version>
  <!-- 父项目,指定为pom类型,即父级的pom文件只作项目子模块的整合,在maven install时不会生成jar/war压缩包。-->
  <packaging>pom</packaging>

  <name>quick-cloud</name>
  <url>http://www.quick.com</url>
  <description>敏捷开发微服务系统</description>

  <!-- 属性配置,集中管理jar包版本,进行自定义标签 -->
  <properties>
    <!-- 关掉单元测试,否则在打包的时候会执行单元测试 -->
    <skipTests>true</skipTests>
    <!-- 项目构建时源码的编码方式 -->
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <!-- 报告输出文件的字符编码 -->
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    <!-- 编译时的编码; 否则在DOS下运行mvn compile命令时会出现莫名的错误,因为系统默认使用GBK编码,如果不在dos下执行mvn compile命令,可以不用配置-->
    <maven.compiler.encoding>UTF-8</maven.compiler.encoding>
    <!-- 项目编译使用jdk版本,设置输入源码的jdk为 1.8 -->
    <maven.compiler.source>1.8</maven.compiler.source>
    <!-- 项目编译使用jdk版本,设置编译输出的字节码的jdk为 1.8 -->
    <maven.compiler.target>1.8</maven.compiler.target>
  </properties>
</project>

2、创建子模块

右键点击父工程,选择 New -> Module... 创建子模块。这里依次创建 quick-common模块,其它模块类似。
切记:图片里面的Version 1.0 一定不要改,否则会报错(我改成了1.0.0):

The desired archetype does not exist (org.apache.maven.archetypes:maven-archetype-archetype:1.0.0)

父模块pom文件里面会多出一个modules配置

  <!-- 子模块 -->
  <modules>
      <module>quick-common</module>
  </modules>

子模块创建好后删除刚创建子模块工程里不需要的文件, 只保留:src 文件夹 、项目 pom 文件。

子模块pom文件默认初始化内容

3、父pom文件中添加依赖管理

在SpringBoot 2.4.x的版本之后,对于bootstrap.properties或者bootstrap.yaml配置文件(我们合起来成为Bootstrap配置文件)的支持,需要导入如下的依赖。

    <!-- 依赖管理 -->
    <dependencies>
        <!-- bootstrap 启动器,在SpringBoot 2.4.x的版本之后,对于bootstrap.properties或者bootstrap.yaml配置文件(我们合起来成为Bootstrap配置文件)的支持,需要导入如下的依赖-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-bootstrap</artifactId>
        </dependency>
    </dependencies>

spring-cloud-starter-bootstrap 是 Spring Cloud 框架中的一个组件,用于提供配置文件的加载和解析功能。它可以帮助 Spring Boot 应用程序从配置服务器(例如 Spring Cloud Config)中加载配置文件,并在应用程序启动时将其解析为 Spring Boot 属性。

关于 spring-cloud-starter-bootstrap 的版本问题,它的版本应该与您使用的 Spring Cloud 版本相匹配。您可以在 Spring Cloud 的文档中找到相应的版本号。例如,如果您正在使用 Spring Cloud 2020.0.x 版本,那么您应该使用 spring-cloud-starter-bootstrap 2.4.x 版本。

此外,需要注意的是,在 Spring Cloud 2021.0 版本中,spring-cloud-starter-bootstrap 已经被弃用,取而代之的是 spring-cloud-starter-config 组件。如果您正在使用 Spring Cloud 2021.0 版本或更高版本,建议使用 spring-cloud-starter-config 组件替代 spring-cloud-starter-bootstrap 组件。

posted @ 2023-11-25 11:05  右手一个柚  阅读(102)  评论(0编辑  收藏  举报