1 创建一个父类maven
如果还没有安装maven可以参考:https://blog.csdn.net/l123lgx/article/details/121421914
创建方式1:使用maven脚手架创建maven项目
1)选择maven 项目:
2)填入项目名称和项目坐标:
注意:填入项目名称后,在项目路径下将项目名称也添加上:
3)设置maven 地址:
4)Fininsh 完成,因为maven-warehouse 是新创建的所以finish 后maven 会进行一定时间段的包下载:
创建方式2:直接创建maven 项目
1)选择maven 项目:
2)项目名称,项目坐标:
3)修改maven 仓库:
file->setting->搜索:maven:
2 :项目设置
1)设置项目编码:
2): 设置项目jdk:
3 :父类项目改造:
1)删除父类src 目录,只需要pom 即可:
2:)pom.xml 处理:
Spring-cloud ,spirng-boot 版本依赖关系参考:https://start.spring.io/actuator/info
<?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.lgx.bluegrass</groupId>
<artifactId>bluegrass</artifactId>
<version>1.0-RELEASE</version>
<modules>
</modules>
<!--1 父类pom 打包 -->
<packaging>pom</packaging>
<!--2 配置环境变量 -->
<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 版本 -->
<lombok.version>1.16.18</lombok.version>
<java.version>1.8</java.version>
<maven.compiler.source>${java.version}</maven.compiler.source>
<maven.compiler.target>${java.version}</maven.compiler.target>
<!-- 版本对照: https://start.spring.io/actuator/info -->
<!-- spring-cloud 版本 -->
<spring-cloud-dependencies-version>Hoxton.SR8</spring-cloud-dependencies-version>
<!-- spring-boot 版本 -->
<spring-boot-dependencies-version>2.3.2.RELEASE</spring-boot-dependencies-version>
<!-- spring-alibaba 版本 -->
<spring-cloud-alibaba-dependencies-version>2.2.3.RELEASE</spring-cloud-alibaba-dependencies-version>
<!-- spring-nacos 版本 -->
<spring-cloud-alibaba-nacos-version>0.2.2.RELEASE</spring-cloud-alibaba-nacos-version>
</properties>
<!-- 3 配置其版本的jar
有时,应用中需要一些比较新的依赖,而这些依赖并没有正式发布,还是处于milestone或者是snapshot阶段,并不能从中央仓库或者镜像站上下载到。此时,就需要自定义Maven的<repositories>
-->
<repositories>
<repository>
<id>spring-milestones</id>
<name>Spring Milestones</name>
<url>https://repo.spring.io/milestone</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
</repositories>
<!--4 配置依赖项管理 -->
<!-- 1、maven2.9以上版本
2、将dependency分类,每一类建立单独的pom文件
3、在需要使用到这些依赖的子model中,使用dependencyManagement管理依赖,并import scope依赖
4、注意:scope=import只能用在dependencyManagement里面,且仅用于type=pom的dependenc
-->
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring-cloud-dependencies-version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>${spring-boot-dependencies-version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>${spring-cloud-alibaba-dependencies-version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
</project>
4 增加公共api 模块
4.1 新增maven模块:
4.2 api pom 修改:
<?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>
<!-- 1 引入父类pom -->
<parent>
<artifactId>bluegrass</artifactId>
<groupId>org.lgx.bluegrass</groupId>
<version>1.0-SNAPSHOT</version>
</parent>
<!-- 2 去除版本 和分组 -->
<!--
<groupId>org.lgx.bluegrass</groupId>
<version>0.0.1-SNAPSHOT</version>
-->
<artifactId>bluegrass-coree</artifactId>
<name>bluegrass-coree</name>
<description>Demo project for Spring Boot</description>
<packaging>jar</packaging>
<!-- 3 去除子类的变量引用统一使用 父类 -->
<!--
<properties>
<java.version>1.8</java.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<spring-boot.version>2.3.7.RELEASE</spring-boot.version>
</properties>
-->
<dependencies>
<dependency>
<groupId>org.lgx.bluegrass</groupId>
<artifactId>bluegrass-api</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
<!-- 增加nacos 配置 -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
<!-- mysql -->
<!-- https://mvnrepository.com/artifact/com.baomidou/mybatis-plus-boot-starter -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.1.1</version>
</dependency>
<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<!-- 分页 -->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>4.1.6</version>
</dependency>
</dependencies>
<!-- 4 移除依赖管理 -->
<!--
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>${spring-boot.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
-->
<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>
<version>2.3.7.RELEASE</version>
<configuration>
<mainClass>org.lgx.bluegrass.bluegrasscoree.BluegrassCoreeApplication</mainClass>
</configuration>
<executions>
<execution>
<id>repackage</id>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
4.3 父类 pom 引入api模块: