当前位置: 首页>编程语言>正文

spring boot archetype spring boot archetypes


Spring cloud入门-1:版本选型、构建父工程

  • 1、前言及版本选型
  • 2、IDEA新建project工作空间
  • 2.1 New Project
  • 2.2 聚合总父工程名字
  • 2.3 Maven选版本
  • 2.4 字符编码
  • 2.5 注解生效激活
  • 2.6 java编译版本选8
  • 2.7 File Type过滤
  • 3、修改父工程pom文件
  • 3.1 删除src文件夹
  • 3.2 添加dependencyManagement
  • 3.3 父工程发布到仓库


  说明:本次spring cloud入门demo是做一个订单-支付模块微服务。

1、前言及版本选型

作为一个刚入行java一年的程序员,后续博文主要是记录学习spring cloud的过程。

  如下图,本次入门demo的版本选型参考了spring cloud官网的推荐之一:Hoxton + spring boot 2.2.x,2.3.x。

  

spring boot archetype spring boot archetypes,spring boot archetype spring boot archetypes_Management,第1张

  本次工程的demo和版本选型均采用了尚硅谷阳哥的版本选型,具体如下:

  spring cloud:Hoxton

  spring boot:2.2.2.RELEASE

  spring cloud alibaba:2.1.0.RELEASE

  java:1.8

  maven:3.5及以上

  mysql:5.7及以上

  

  本次spring cloud入门demo是做一个订单-支付模块微服务。通过这个简单的业务,主要是来学习下spring cloud的各个组件之间的使用。

  接下来是为整个项目创建一个总父工程。

2、IDEA新建project工作空间

IDEA和Maven的安装可以参考上一篇博文(Ubuntu16.04+IDEA社区版+Maven+Tomcat的安装及运行Java Web项目)。

2.1 New Project

点击File-> New-> Project

得到下图,然后点击maven,选择自己的jdk,勾选Create from archetype,然后选择org.apache.maven.archetypes:maven-archetype-site,然后点击Next

spring boot archetype spring boot archetypes,spring boot archetype spring boot archetypes_spring_02,第2张

2.2 聚合总父工程名字

得到下图后,

输入总父工程名字:cloud2021,选择自己工程的目录Location,填写GRV坐标。点击Next

spring boot archetype spring boot archetypes,spring boot archetype spring boot archetypes_spring_03,第3张

2.3 Maven选版本

得到下图后,将MAVEN的版本改为我们自己所下载的版本

spring boot archetype spring boot archetypes,spring boot archetype spring boot archetypes_intellij-idea_04,第4张

点击FInish,得到下图

spring boot archetype spring boot archetypes,spring boot archetype spring boot archetypes_java_05,第5张

2.4 字符编码

接着处理整个总工程的字符编码,

点击File-> Settings -> Editor -> File Encodings,得到下图

然后将编码均设置为UTF-8,然后点击Apply,OK

spring boot archetype spring boot archetypes,spring boot archetype spring boot archetypes_maven_06,第6张

2.5 注解生效激活

由于后面的工程都要用很多注解,在总工程这里使得激活注解生效

点击File-> Settings -> Build,Execution,Deployment -> Compiler -> Annotation Processors

得到下图,点击Default,给Enable annotation processing打钩,然后点击Apply,OK

spring boot archetype spring boot archetypes,spring boot archetype spring boot archetypes_maven_07,第7张

2.6 java编译版本选8

接着将java编译版本改为1.8

点击File-> Settings -> Build,Execution,Deployment -> Java Compiler

得到下图将Target bytecode version 选为java8,然后点击Apply,OK

spring boot archetype spring boot archetypes,spring boot archetype spring boot archetypes_java_08,第8张

2.7 File Type过滤

如下图,IDEA创建工程时,会自带一些文件类型,如下图的.idea文件,.iml文件。而这些文件类型,我们后面基本不会使用,所以如果不想一直看到这些的话,可以将这些文件进行过滤。

spring boot archetype spring boot archetypes,spring boot archetype spring boot archetypes_maven_09,第9张

过滤步骤如下:

点击File-> Settings -> Editor -> File Types

得到下图,点击Ignore files and folders,添加你所不需要的文件类型,如.idea文件,.iml文件,然后点击Apply,OK

spring boot archetype spring boot archetypes,spring boot archetype spring boot archetypes_spring_10,第10张

此时再看一下我们的工程目录下,就没有刚刚的.idea文件和.iml文件了。

spring boot archetype spring boot archetypes,spring boot archetype spring boot archetypes_Management_11,第11张

3、修改父工程pom文件

3.1 删除src文件夹

在第2步中已经创建好了父工程,接下来需要对pom文件里的jar包进行优化和整理。

spring boot archetype spring boot archetypes,spring boot archetype spring boot archetypes_spring_12,第12张

首先将不需要的src文件夹删除。鼠标右键src文件夹,点击delete。

spring boot archetype spring boot archetypes,spring boot archetype spring boot archetypes_java_13,第13张

3.2 添加dependencyManagement

首先需要明白dependencyManagement与dependencies之间的区别:
  Maven使用dependencyManagement元素提供了一种管理依赖版本号的方式。通常会在一个组织或者项目的最顶层父POM中看到dependencyManagement元素。
  使用pom.xml中的dependencyManagement元素能让所有在子项目中引用一个依赖而不用显式地列出版本号。
  Maven会沿着父子层次向上走,直到找到一个拥有dependencyManagement元素的项目,然后它就会使用这个dependencyManagement元素中指定的版本号。
  如下图,我们在父工程的pom文件的dependencyManagement中指定了druid的版本号为1.1.16,那么在子项目中添加druid时可以不指定版本号了。
  这样做的好处是:如果有多个子项目都引用同一个依赖,则可以避免在每个使用的子项目里都声明一个版本号,这样当想升级或切换到另一个版本时,只需要在顶层父容器中修改,而不需要一个一个子项目修改,即一处修改,处处生效。
  但是dependencyManagement里只是声明依赖,并不实现引入,因此子项目需要显示地声明需要用的依赖。
  如果子项目中指定了版本号,那么会使用子项目中指定的jar包版本。
  父工程的pom文件如下:
  注意:如果填写过程中出现project元素或者其他元素报红等情况,可以尝试重启下IDEA

<?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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <groupId>org.example.springcloud</groupId>
  <artifactId>cloud2021</artifactId>
  <version>1.0-SNAPSHOT</version>
  <packaging>pom</packaging>


  <!--  统一管理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>

  <!--  子模块继承之后,提供的作用:锁定版本+子module不用写groupId和version-->
  <dependencyManagement>
    <dependencies>
      <!--    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-alibaba 2.1.0.RELEASE-->
      <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>

      <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>${mysql.version}}</version>
      </dependency>
      <dependency>
        <groupId>com.alibaba</groupId>
        <artifactId>druid</artifactId>
        <version>${druid.version}}</version>
      </dependency>
      <dependency>
        <groupId>org.mybatis.spring.boot</groupId>
        <artifactId>mybatis-spring-boot-starter</artifactId>
        <version>${mybatis.spring.boot.version}</version>
      </dependency>
      <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>${junit.version}</version>
      </dependency>
      <dependency>
        <groupId>log4j</groupId>
        <artifactId>log4j</artifactId>
        <version>${log4j.version}</version>
      </dependency>
      <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <version>${lombok.version}}</version>
        <optional>true</optional>
      </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>
</project>

3.3 父工程发布到仓库

当父工程的pom文件的jar包配置号之后,需要验证是否可以构建成功。

pom文件鼠标右击 -> maven -> Reload project,reload之后,点击右边的maven,选择install,然后点击运行按钮

spring boot archetype spring boot archetypes,spring boot archetype spring boot archetypes_intellij-idea_14,第14张

如果运行得到BUILD SUCCESS,说明父工程的环境配置成功

spring boot archetype spring boot archetypes,spring boot archetype spring boot archetypes_maven_15,第15张



https://www.xamrdz.com/lan/5b21967477.html

相关文章: