SpringCloud學習筆記之SpringCloud搭建父工程的過程圖解

SpringCloud是分佈式微服務架構的一站式解決方案,十多種微服務架構落地技術的集合體,俗稱微服務全傢桶

SpringCloud和SpringBoot版本選擇

自2019年以後官方建議使用2.0以後的版本
官網地址
在官網的頁首可以看到最新版本以及對應的springboot版本


在官網可以看到官方推薦的springcloud與springboot相對應的版本

更詳細的版本選擇

版本info

其中可以看到官方推薦的版本選擇
目前選擇以下版本

相關技術選型

創建工程

鐵則:約定>配置>編碼

創建父工程

New Project

新建maven工程

字符編碼
在setting中設置

使註解生效

選擇java編譯版本為java8

配置父工程的pom文件

指定打包方式為pom

刪除自帶的src文件夾

更換pom.xml文件中的部分內容

<!-- 統一管理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>
	<lombok.version>1.16.18</lombok.version>
	<mysql.version>5.1.47</mysql.version>
	<druid.version>1.1.16</druid.version>
	<mybatis.spring.boot.version>1.3.0</mybatis.spring.boot.version>
  </properties>

<!--  使用dependencyManagement,父工程指定,子工程不用再指定-->
  <dependencyManagement>
  <dependencies>
  <dependency>
	<groupId>org.apache.maven.plugins</groupId>
	<artifactId>maven-project-info-reports-plugin</artifactId>
	<version>3.0.0</version>
  </dependency>
  <!--spring boot 2.2.2-->
  <dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-dependencies</artifactId>
	<version>2.2.2.RELEASE</version>
	<type>pom</type>
	<scope>import</scope>
  </dependency>
  <!--spring cloud Hoxton.SR1-->
  <dependency>
	<groupId>org.springframework.cloud</groupId>
	<artifactId>spring-cloud-dependencies</artifactId>
	<version>Hoxton.SR1</version>
	<type>pom</type>
	<scope>import</scope>
  </dependency>
  <!--spring cloud 阿裡巴巴-->
  <dependency>
	<groupId>com.alibaba.cloud</groupId>
	<artifactId>spring-cloud-alibaba-dependencies</artifactId>
	<version>2.1.0.RELEASE</version>
	<type>pom</type>
	<scope>import</scope>
  </dependency>
  <!--mysql-->
  <dependency>
	<groupId>mysql</groupId>
	<artifactId>mysql-connector-java</artifactId>
	<version>${mysql.version}</version>
	<scope>runtime</scope>
  </dependency>
  <!-- druid-->
  <dependency>
	<groupId>com.alibaba</groupId>
	<artifactId>druid</artifactId>
	<version>${druid.version}</version>
  </dependency>

	<!--mybatis-->
	<dependency>
	  <groupId>org.mybatis.spring.boot</groupId>
	  <artifactId>mybatis-spring-boot-starter</artifactId>
	  <version>${mybatis.spring.boot.version}</version>
	</dependency>
	<!--junit-->
	<dependency>
	  <groupId>junit</groupId>
	  <artifactId>junit</artifactId>
	  <version>${junit.version}</version>
	</dependency>
	<!--log4j-->
	<dependency>
	  <groupId>log4j</groupId>
	  <artifactId>log4j</artifactId>
	  <version>${log4j.version}</version>
	</dependency>
  </dependencies>

  </dependencyManagement>

  <build>
	<plugins>
	  <plugin>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-maven-plugin</artifactId>
		<configuration>
		  <fork>true</fork>
		  <addResources>true</addResources>
		</configuration>
	  </plugin>
	</plugins>
  </build>

更換部分如下

為瞭防止打包時因為test出錯而卡住,需要skip maven生命周期中的test

dependencyManagement 和dependencies的區別

  • dependencyManagement 通常在父工程中聲明,用於聲明依賴的version和scope,而不會實際引入包
  • dependencies通常在子工程中聲明,會實際引入包,如果引入瞭父工程聲明過的包,則聲明時不再需要指定版本

到此這篇關於SpringCloud學習筆記(一)搭建父工程的文章就介紹到這瞭,更多相關SpringCloud搭建父工程內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: