终身学习、乐于分享、共同成长!
前言
你是否能从零开始搭建一套SpringCloudAlibaba开发脚手架呢?
在实际的项目开发中,一般不需要我们自己搭建一个开发环境,公司一般都会有一套现成的项目初始化开发脚手架,但作为一个对技术充满热爱的工程师来说,怎么能不了解一下如何搭建一套开发脚手架呢?
自己动手去搭建一个开发环境能帮助我们理解其中的原理,也能让我们理解脚手架的每个部分是干嘛的,让我们知道怎么去改脚手架的内容,下面跟着我的博客一起搭建一个SpringCloudAlibaba的开发环境吧。
目标
开发脚手架有什么作用?
本章目标:完成SpringCloudAlibaba开发环境搭建
开发脚手架的作用主要就是提升效率,当我们有一个可重复使用开发环境,那我们在不断做业务项目的过程中就能省去环境搭建所耗费的时间,提升我们的工作效率。
实现
- 环境
JDK:1.8
SpringCloud:Hoxton.SR12
Spring Cloud Alibaba:2.2.9.RELEASE
SpringBoot:2.3.12.RELEASE
开发工具:IDEA
2.工程结构
springcloudalibaba-study
├── springcloudalibaba-step-01
| ├──src
| | ├── main
| | │ ├── java
| | │ | └── cn.codelab.step01
| | │ | └── Step01Application.java
| | | └── resources
| | | └── application.properties
| | └── test
| | └── java
| | └── cn.codelab.step01.test
| └── pom.xml
└── pom.xml
2.1 首先使用IDEA创建一个Maven工程springcloudalibaba-study,这个工程是一个父工程,主要作用是为后续的子工程提供Maven依赖的管理,统一管理公共依赖,起到版本管理器的作用,接下来对pom.xml文件的重点设置进行讲解。
- 1.将工程的打包方式改为pom。由于父工程作为依赖的版本管理器使用,不需要单独打包部署,因此将打包方式改为pom。
<packaging>pom</packaging>
- 2.添加properties属性配置。主要设置各个依赖的版本号,方便统一管理及复用,这里暂时设置jdk版本、SpringCloudAlibaba的依赖版本、SpringBoot版本以及SpringCloud的版本,后续其他依赖的版本号可以继续增加。
<properties>
<java.version>1.8</java.version>
<spring-cloud-alibaba.version>2.2.9.RELEASE</spring-cloud-alibaba.version>
<springboot.version>2.3.12.RELEASE</springboot.version>
<spring-cloud.version>Hoxton.SR12</spring-cloud.version>
</properties>
- 3.添加SpringCloudAlibaba、SpringCloud、以及SpringBoot的版本管理器。
<dependencyManagement>
<dependencies>
<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>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>${springboot.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring-cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
- 4.添加公共依赖。添加子工程中可能用到的公共依赖。
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
这里解释一下为什么这里添加依赖不用指定版本号,原因就在于前面第3步我们添加了版本管理器,所以Maven会自动去版本管理器中获取对应依赖的版本号,当然如果这个依赖没有在版本管理器中定义,则还是需要自己手动添加版本号的。
完整pom.xml
<?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>
<groupId>cn.codelab.study</groupId>
<artifactId>springcloudalibaba-study</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>pom</packaging>
<name>springcloudalibaba-study</name>
<properties>
<java.version>1.8</java.version>
<spring-cloud-alibaba.version>2.2.9.RELEASE</spring-cloud-alibaba.version>
<springboot.version>2.3.12.RELEASE</springboot.version>
<spring-cloud.version>Hoxton.SR12</spring-cloud.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<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>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>${springboot.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring-cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
3.创建Maven子工程springcloudalibaba-step-01。springcloudalibaba-step-01是一个可打包发布的项目工程。
- 将parent设置为springcloudalibaba-study父工程。
<parent>
<groupId>cn.codelab.study</groupId>
<artifactId>springcloudalibaba-study</artifactId>
<version>0.0.1-SNAPSHOT</version>
</parent>
完整pom.xml
<?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>
<parent>
<groupId>cn.codelab.study</groupId>
<artifactId>springcloudalibaba-study</artifactId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<groupId>cn.codelab.study</groupId>
<artifactId>springcloudalibaba-step-01</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>springcloudalibaba-step-01</name>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
- 编辑application.properties设置端口为8001。这步根据个人实际来设置
server.port=8001
- 运行Application.java类,观察运行运行日志是否启动成功。
通过启动日志可以看到,目前step01应用正常启动了,至此SpringCloudAlibaba开发环境搭建完成。
- 完整代码可以在公众号Seven的代码实验室中回复SpringCloudAlibaba获取。
本文暂时没有评论,来添加一个吧(●'◡'●)