SpringCloud创建项目父工程
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创建项目父工程相关推荐
- App开发流程之创建项目和工程基本配置
我的开发环境为:Mac OS X EI Capitan(10.11.6),Xcode 7.3.1 首先说明一下这个项目的初衷,我并非要创建一个完整的上架应用,旨在创建一个可运行的,通用配置.架构,提供 ...
- springcloud 创建子父项目_idea搭建springCloud----搭建父子项目(二)
今天介绍一下 : idea 搭建父子项目 父项目:springCloud_ht 子项目:eureka_server(注册中心) 1-1.新建父项目: 1-2 起名称 springCloud_ht 1- ...
- ecplise SpringCould搭建过程---创建SpringCould父工程
1.创建maven项目 2. 3. 点击finish 项目创建完成,这个是一个父工程, 工程中目录: Springcould |_____src |_____site |____pom.xml 其他的 ...
- 创建maven父工程统一管理版本号
一.建立一个maven工程 pom类型 统一管理依赖以及版本号 子工程不会使用所有的定义的依赖 子工程使用依赖时无需指定版本号 其pom.xml: <?xml version="1.0 ...
- SpringCloud创建Config模块
1.说明 本文详细介绍Spring Cloud创建Config模块的方法, 基于已经创建好的Spring Cloud父工程, 请参考SpringCloud创建项目父工程, 创建Config模块这个子工 ...
- SpringCloud创建Gateway模块
1.说明 本文详细介绍Spring Cloud创建Gateway模块的方法, 基于已经创建好的Spring Cloud父工程, 请参考SpringCloud创建项目父工程, 和已经创建好的Eureka ...
- SpringCloud创建Eureka模块
1.说明 本文详细介绍Spring Cloud创建Eureka模块的方法, 基于已经创建好的Spring Cloud父工程, 请参考SpringCloud创建项目父工程, 在里面创建Eureka模块, ...
- java maven项目构建ssh工程 父工程与子模块的拆分与聚合
目录 一.maven父工程与子模块的拆分与聚合原理 二.案例实现 一.maven父工程与子模块的拆分与聚合原理 问题描述:将ssh工程拆分为多个模块开发 1.1.拆分原理 创建一个maven proj ...
- maven(二) maven项目构建ssh工程(父工程与子模块的拆分与聚合)
前一节我们明白了maven是个什么玩意,这一节就来讲讲他的一个重要的应用场景,也就是通过maven将一个ssh项目分割为不同的几个部分独立开发,很重要,加油 --WZY 一.maven父工程与子模块的 ...
最新文章
- 数据结构之python实现顺序表
- SD--va01的屏幕增强
- 5种Python逐行读取文件的方式
- 2021-07-23 小记
- python re正则查找_python正则表达式 - re
- Docker容器(container)详解
- 基于表的数据字典构造MySQL建表语句
- [pytorch] 深度学习分割网络U-net的pytorch模型实现 原创 2017年03月08日 21:48:21 标签: python / 深度学习 / 生物图
- java进度条的使用_java 中进度条的使用
- 计算机打字速成,计算机汉字输入五笔字型打字速成.pdf
- 【填空题】130道面试填空题
- python:find_peaks
- 计算机信息加工是指什么作用,信息加工是什么?
- 【内卷数据结构】顺序表超详细解析 | 从零开始步步解读 | 画图理解+调试分析 | 菜单制作
- 静态内部类、静态变量的加载次数-理解静态内部类实现线程安全的单例模式
- 计算机视觉中的变分方法-扩散(Diffusion)
- 泊松分布、高斯分布、卡方检验与noise level
- Vue vuex vue-router
- 如何利用origin提取原始数据
- 环境配置 龙书dx12_DX12龙书 00 - 环境配置:通过 Visual Studio 2019 运行示例项目
热门文章
- 抽取类的#技巧#成员变量最可能
- HDU 3018 Ant Trip(一笔画问题)
- 不用图片而用css3实现一些阴影特效
- JavaScript(二)—— JavaScript 运算符/JavaScript 流程控制/JavaScript 数组
- 带你了解FPGA(2)--逻辑设计基础
- 计算机二级考vb试题,2017计算机二级考试VB练习题及答案
- CSS Hide(隐藏元素)
- L1-046 整除光棍 (20 分)567
- python二多分支例题_Python分支语句练习题
- js 中meta 移除head_JS函数和winform函数之间的相互调用