1.说明

本文详解介绍Spring Cloud项目的父工程创建,
由于Spring Cloud项目下有很多模块组件,
需要先创建一个大的父工程项目,
然后在下面创建各个子工程模块。

2.创建父工程

这一步创建一个Maven Project,
作为Spring Cloud的父工程:
File -> New -> Other... -> Maven -> Maven Project

勾选Create a simple project(skip archetype selection),
然后去掉勾选Use default Workspace location,
点击Browse...设置自己项目保存的Location:
D:\Code\Learn\SpringCloud\spring-cloud-demo

点击Next下一步,
这里输入要创建的项目的名称等信息,
主要是修改Group Id,Artifact Id,Packaging,
注意Packaging设置为pom,
表示该项目是作为父工程使用,
顺便一提子工程建立的Packaging应该为jar。

点击Finish完成工程创建。

3.查看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/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.yuwen.spring</groupId><artifactId>spring-cloud-demo</artifactId><version>0.0.1-SNAPSHOT</version><packaging>pom</packaging><description>Spring Cloud Demo Project</description>
</project>

4.删除多余的目录

删除父工程下的src目录,
因为父工程没有源码文件。

5.添加依赖

在pom.xml中的dependencyManagement下面,
加入Spring Boot和Spring Cloud依赖管理,
注意这里的Spring Boot和Spring Cloud版本要匹配:

<dependencyManagement><dependencies><!--spring boot dependencies--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-dependencies</artifactId><version>2.3.1.RELEASE</version><type>pom</type><scope>import</scope></dependency><!--spring cloud dependencies--><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-dependencies</artifactId><version>Hoxton.SR6</version><type>pom</type><scope>import</scope></dependency></dependencies>
</dependencyManagement>

这样子模块继承之后,
在子模块中就不用写依赖的版本号,
各个子模块就不会有jar包冲突问题了。

6.添加构建

在pom.xml中的build下面,
加入spring-boot-maven-plugin打包插件,
指定了使用Maven打包Spring Boot工程时,
goal为repackage即重新打包,
重新打出的新jar包就会有正确的启动类。
子工程打包时,会继承该打包配置,
否则子工程使用mvn clean install打包后,
会发生jar包找不到main无法运行问题。

<build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><version>2.3.1.RELEASE</version><executions><execution><!--打包时,重新打包指定spring boot的启动类 --><id>repackage</id><goals><goal>repackage</goal></goals></execution></executions></plugin></plugins>
</build>

7.父工程的parent说明

由于这里的父工程没有它的parent父工程,
也可以使用spring-boot-starter-parent作为父工程,
可以解决上一步的打包问题。

<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.3.1.RELEASE</version><relativePath /> <!-- lookup parent from repository -->
</parent>

但是如果这里的父工程需要继承公司更高一级的父工程,
那这种方法就无法使用了,
而且这种方法没有上一步的通用。
推荐开发遇到问题时,
把spring-boot-starter-parent作为参考,
而不是直接依赖其作为父工程。

8.Spring Cloud和Spring Boot版本对应关系

"spring-cloud": {
"Finchley.M2": "Spring Boot >=2.0.0.M3 and <2.0.0.M5",
"Finchley.M3": "Spring Boot >=2.0.0.M5 and <=2.0.0.M5",
"Finchley.M4": "Spring Boot >=2.0.0.M6 and <=2.0.0.M6",
"Finchley.M5": "Spring Boot >=2.0.0.M7 and <=2.0.0.M7",
"Finchley.M6": "Spring Boot >=2.0.0.RC1 and <=2.0.0.RC1",
"Finchley.M7": "Spring Boot >=2.0.0.RC2 and <=2.0.0.RC2",
"Finchley.M9": "Spring Boot >=2.0.0.RELEASE and <=2.0.0.RELEASE",
"Finchley.RC1": "Spring Boot >=2.0.1.RELEASE and <2.0.2.RELEASE",
"Finchley.RC2": "Spring Boot >=2.0.2.RELEASE and <2.0.3.RELEASE",
"Finchley.SR4": "Spring Boot >=2.0.3.RELEASE and <2.0.999.BUILD-SNAPSHOT",
"Finchley.BUILD-SNAPSHOT": "Spring Boot >=2.0.999.BUILD-SNAPSHOT and <2.1.0.M3",
"Greenwich.M1": "Spring Boot >=2.1.0.M3 and <2.1.0.RELEASE",
"Greenwich.SR6": "Spring Boot >=2.1.0.RELEASE and <2.1.16.BUILD-SNAPSHOT",
"Greenwich.BUILD-SNAPSHOT": "Spring Boot >=2.1.16.BUILD-SNAPSHOT and <2.2.0.M4",
"Hoxton.SR6": "Spring Boot >=2.2.0.M4 and <2.3.2.BUILD-SNAPSHOT",
"Hoxton.BUILD-SNAPSHOT": "Spring Boot >=2.3.2.BUILD-SNAPSHOT and <2.4.0.M1",
"2020.0.0-SNAPSHOT": "Spring Boot >=2.4.0.M1"
}
注意两者一定要匹配,
不然会发生意想不到的问题,
而且比较难处理的。
最新的对应关系查询地址:
https://start.spring.io/actuator/info


http://www.taodudu.cc/news/show-1251004.html

相关文章:

  • SpringCloud创建Eureka模块
  • SpringBoot集成MyBatis-Plus代码生成器(Dao)
  • SpringCloud创建Gateway模块
  • Eclipse控制台Console使用说明
  • POI导入导出Excel(HSSF格式,User Model方式)
  • 正则表达式常用汇总
  • 接口文档编写技巧
  • MySQL客户端mysql常用命令
  • HAproxy开启日志记录
  • SpringCloud创建Config模块
  • SpringCloud创建Eureka Client服务注册
  • SpringCloud创建Config Client配置读取
  • SpringCloud创建Config Client通过Eureka访问Config
  • SpringCloud集成Security安全(Config配置中心)
  • SpringCloud集成Security安全(Eureka注册中心)
  • SpringCloud创建Config多客户端公共配置
  • SpringCloud创建Config读取本地配置
  • SpringCloud使用汇总Config
  • SpringCloud创建Eureka模块集群
  • Eclipse启动SpringCloud微服务集群的方法
  • SpringCloud发现服务代码(EurekaClient,DiscoveryClient)
  • SpringBoot集成Actuator监控管理
  • SpringBoot集成Actuator端点配置
  • SpringBoot集成Actuator健康指示器health
  • gRPC创建Java RPC服务
  • ProtoBuf3语法指南(Protocol Buffers)_上
  • ProtoBuf3语法指南(Protocol Buffers)_下
  • gPRC基本介绍
  • Log4j2日志框架集成Slf4j日志门面
  • XML解析的四种方式

SpringCloud创建项目父工程相关推荐

  1. App开发流程之创建项目和工程基本配置

    我的开发环境为:Mac OS X EI Capitan(10.11.6),Xcode 7.3.1 首先说明一下这个项目的初衷,我并非要创建一个完整的上架应用,旨在创建一个可运行的,通用配置.架构,提供 ...

  2. springcloud 创建子父项目_idea搭建springCloud----搭建父子项目(二)

    今天介绍一下 : idea 搭建父子项目 父项目:springCloud_ht 子项目:eureka_server(注册中心) 1-1.新建父项目: 1-2 起名称 springCloud_ht 1- ...

  3. ecplise SpringCould搭建过程---创建SpringCould父工程

    1.创建maven项目 2. 3. 点击finish 项目创建完成,这个是一个父工程, 工程中目录: Springcould |_____src |_____site |____pom.xml 其他的 ...

  4. 创建maven父工程统一管理版本号

    一.建立一个maven工程 pom类型 统一管理依赖以及版本号 子工程不会使用所有的定义的依赖 子工程使用依赖时无需指定版本号 其pom.xml: <?xml version="1.0 ...

  5. SpringCloud创建Config模块

    1.说明 本文详细介绍Spring Cloud创建Config模块的方法, 基于已经创建好的Spring Cloud父工程, 请参考SpringCloud创建项目父工程, 创建Config模块这个子工 ...

  6. SpringCloud创建Gateway模块

    1.说明 本文详细介绍Spring Cloud创建Gateway模块的方法, 基于已经创建好的Spring Cloud父工程, 请参考SpringCloud创建项目父工程, 和已经创建好的Eureka ...

  7. SpringCloud创建Eureka模块

    1.说明 本文详细介绍Spring Cloud创建Eureka模块的方法, 基于已经创建好的Spring Cloud父工程, 请参考SpringCloud创建项目父工程, 在里面创建Eureka模块, ...

  8. java maven项目构建ssh工程 父工程与子模块的拆分与聚合

    目录 一.maven父工程与子模块的拆分与聚合原理 二.案例实现 一.maven父工程与子模块的拆分与聚合原理 问题描述:将ssh工程拆分为多个模块开发 1.1.拆分原理 创建一个maven proj ...

  9. maven(二) maven项目构建ssh工程(父工程与子模块的拆分与聚合)

    前一节我们明白了maven是个什么玩意,这一节就来讲讲他的一个重要的应用场景,也就是通过maven将一个ssh项目分割为不同的几个部分独立开发,很重要,加油 --WZY 一.maven父工程与子模块的 ...

最新文章

  1. 数据结构之python实现顺序表
  2. SD--va01的屏幕增强
  3. 5种Python逐行读取文件的方式
  4. 2021-07-23 小记
  5. python re正则查找_python正则表达式 - re
  6. Docker容器(container)详解
  7. 基于表的数据字典构造MySQL建表语句
  8. [pytorch] 深度学习分割网络U-net的pytorch模型实现 原创 2017年03月08日 21:48:21 标签: python / 深度学习 / 生物图
  9. java进度条的使用_java 中进度条的使用
  10. 计算机打字速成,计算机汉字输入五笔字型打字速成.pdf
  11. 【填空题】130道面试填空题
  12. python:find_peaks
  13. 计算机信息加工是指什么作用,信息加工是什么?
  14. 【内卷数据结构】顺序表超详细解析 | 从零开始步步解读 | 画图理解+调试分析 | 菜单制作
  15. 静态内部类、静态变量的加载次数-理解静态内部类实现线程安全的单例模式
  16. 计算机视觉中的变分方法-扩散(Diffusion)
  17. 泊松分布、高斯分布、卡方检验与noise level
  18. Vue vuex vue-router
  19. 如何利用origin提取原始数据
  20. 环境配置 龙书dx12_DX12龙书 00 - 环境配置:通过 Visual Studio 2019 运行示例项目

热门文章

  1. 抽取类的#技巧#成员变量最可能
  2. HDU 3018 Ant Trip(一笔画问题)
  3. 不用图片而用css3实现一些阴影特效
  4. JavaScript(二)—— JavaScript 运算符/JavaScript 流程控制/JavaScript 数组
  5. 带你了解FPGA(2)--逻辑设计基础
  6. 计算机二级考vb试题,2017计算机二级考试VB练习题及答案
  7. CSS Hide(隐藏元素)
  8. L1-046 整除光棍 (20 分)567
  9. python二多分支例题_Python分支语句练习题
  10. js 中meta 移除head_JS函数和winform函数之间的相互调用