无论是团队之前使用的分布式开发模式,还是自己在学习时多多少少都遇到过将多模块共有的依赖管理统一放在一个pom文件中,而这个pom文件便在父工程中,子工程继承父工程即可。本次学习Spring Cloud是尚硅谷阳哥的视频为主,购买的书籍为辅,这里做笔记以便加深记忆。
每个人都有自己构建项目的一套流程,而在看完阳哥视频后,发现阳哥的构建方法是比较简洁的一套流程,没有多余的文件。而阳哥始终坚持一套标准,即约定 > 配置 > 编码,只有前期工作做好了,我们才能在未来编码的时候不会去填坑。犹如盖楼一样,如果地基出现问题,那楼是不可能盖起来的,即使盖起来,也会存在一些问题。
约定
JDK版本:1.8
Maven版本:3.6.2
SpringBoot版本:2.2.2.RELEASE
SpringCloud版本:Hoxton.SR1
配置
1.更改父工程pom文件包类型
<packaging>pom</packaging>
2.统一管理Jar版本
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<junit.version>4.12</junit.version>
<log4j.version>1.2.17</log4j.version>
</properties>
3.使用DependencyManagement管理依赖项
Maven使用dependencyManagement元素来提供一种管理依赖版本号的方式,通常只有在项目的最顶层的父POM中看到该元素。使用该元素只是声明了依赖,并不实现引入依赖,因此子项目需要显示的声明需要使用的依赖项。若果不在子项目中声明依赖,是不会从项目中继承下来。使用该元素方便Jar包版本升级或切换版本号。
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>2.2.2.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Hoxton.SR1</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencyManagement>
4.使用mvn:install将父工程发布到仓库方便子工程继承
构建子工程模块
按照阳哥构建方式来,简单快捷,不糊涂!!!
1.建模块
构建模块
2.改POM
在子模块的pom.xml文件中加入依赖项
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
</dependencies>
3.写YML
#配置端口号
server:
port: 8001
#配置项目名称
spring:
application:
name: cloud-payment-service
4.主启动
package com.ming.it;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class PaymentServiceApplication {
public static void main(String[] args) {
SpringApplication.run(PaymentServiceApplication.class, args);
}
}
此处我们将构建父工程和子模块都做了简单总结,后面我们根据自己的需要对子模块进行完善,以及多个子模块的创建编写。
网友评论