首页 > 其他分享 >聚合工程的微服务之创建父工程和子模块

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

时间:2023-11-25 11:12:04浏览次数:40  
标签:和子 工程 Spring pom starter 模块 spring cloud

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>

  <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 组件。

标签:和子,工程,Spring,pom,starter,模块,spring,cloud
From: https://www.cnblogs.com/shigzh/p/17855287.html

相关文章

  • 聚合工程的微服务之父pom配置
    1、属性配置<!--属性配置--><properties><!--关掉单元测试,否则在打包的时候会执行单元测试--><skipTests>true</skipTests><!--项目构建时源码的编码方式--><project.build.sourceEncoding>UTF-8</project.build.sou......
  • Python文件锁portalocker模块
    在多进程/多线程的学习后,终于来到了“文件锁”这个概念阶段,文件锁的存在就是由于在多进程/线程操作时会对某个文件进行频繁修改,而导致读取与修改的数据产生不同步。典型场景有以下:进程1对文件A进行写入操作,写入一条记录a,持续时间时20s才能完成这个文件的写入。此时进程2在第......
  • 【Django基础】auth认证模块
    https://www.cnblogs.com/DuoDuosg/p/17005583.html一、django的auth认证模块1.什么是auth模块Auth模块是Django自带的用户认证模块:我们在开发一个网站的时候,无可避免的需要设计实现网站的用户系统。此时我们需要实现包括用户注册、用户登录、用户认证、注销、修改密码等功能,......
  • 如何选择工程监测高性价比的振弦采集仪
    如何选择工程监测高性价比的振弦采集仪工程监测振弦采集仪是目前工程建设、维修、改造等领域中必不可少的一种监测设备。它的主要作用是对建筑物、桥梁、隧道等工程结构进行振动监测,以便尽早发现结构的变形、裂缝、松动等问题,提高结构的安全性和稳定性。但是市面上的振弦采集仪品......
  • 平台工程指南:TheNewStack 发布的免费电子书
    TheNewStack日前发布了免费电子书《PlatformEngineering:WhatYouNeedtoKnowNow》,该电子书由VMwareTanzu赞助,期望为您的平台工程战略奠定基础,助您实现DevOps所承诺的更快的生产力。 通过这本平台工程的新电子书,探索DevOps文化如何导致内部开发者平台的采用率上升......
  • 代码随想训练营第四十二天(Python)| 0-1 背包基础、416. 分割等和子集
    [背包基础]题目:有n件物品和一个最多能背重量为w的背包。第i件物品的重量是weight[i],得到的价值是value[i]。每件物品只能用一次,求解将哪些物品装入背包里物品价值总和最大。1、二维方式解决背包问题classSolution:defsolve_bag(self,weight,value,bag_weight):......
  • Android典型技术模块开发详解 pdf 资料
    文章目录1、介绍2、章节介绍1、介绍Android典型技术模块开发详解适合刚步入Android开发的工作者,对于Android各个模块能够很好、很全面的讲解。2、章节介绍Android典型技术模块开发详解pdfAndroid典型技术模块开发详解代码文献参考:《Android典型技术模块开发详解》......
  • 平台工程时代的 Kubernetes 揭秘:2023年生产状况报告深度剖析
    Kubernetes在生产环境中的复杂性已经成为常态,在2023年这个平台工程盛行的时代,容器管理的最大亮点可能在于其灵活性,然而在运维政策和治理等方面仍然存在诸多挑战。八年过去了,在生产环境中使用Kubernetes仍然需要面临许多挑战。 SpectroCloud刚刚与DimensionalResearch合......
  • 8年测试工程师分享,我是怎么开展性能测试的(基础篇)
    第一节测试的一般步骤性能测试的工作是基于系统功能已经完备或者已经趋于完备之上的,在功能还不够完备的情况下没有多大的意义(后期功能完善上会对系统的性能有影响,过早进入性能测试会出现测试结果不准确、浪费测试资源);因此,性能测试首先是基于功能测试的,你必须了解其功能实现才能......
  • 蓝牙 相关信息 模块信息
    ST代理-NBIOT无线模块-lora-nbz智能水表-5G工业网关模块-NB燃气表-利尔达科技集团(lierda.com)什么是BLE(BluetoothLowEnerge)?-知乎(zhihu.com)......