一、软件准备****
软件名称或操作系统**** | 版本**** | 备注**** |
---|---|---|
Mac OSX/Win10/Win11**** | 11.2/x64/x64**** | **** |
IntelliJ IDEA | 2019+ | 安装插件lombok |
Maven**** | 3.6.1**** | **** |
软件安装步骤:略
二、微服务模板工程开发环境搭建前置准备****
1. 构建Springboot demo模板项目
(1) 选择工程类型****
1) 该教程以模板工程:Spring Initializar做为示范工程。如下图所示:
2) 依据实际情况填写,选择需要的组件,参考下图亦可。
最后点击【Finish】,创建mavenArchetype模板工程。
3) 构建完成的项目结构。
4) 打开模板项目等待依赖项下载完成。
(2) 添加 模板 工程测试依赖包****
选择【pom.xml】文件,查看Web测试依赖包。
<dependencies>
<!-- <dependency>-->
<!-- <groupId>org.springframework.boot</groupId>-->
<!-- <artifactId>spring-boot-starter-jdbc</artifactId>-->
<!-- </dependency>-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
<optional>true</optional>
</dependency>
<!-- <dependency>-->
<!-- <groupId>mysql</groupId>-->
<!-- <artifactId>mysql-connector-java</artifactId>-->
<!-- <scope>runtime</scope>-->
<!-- </dependency>-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<excludes>
<exclude>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</exclude>
</excludes>
</configuration>
</plugin>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<groupId>org.apache.maven.plugins</groupId>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>
复制代码
(3) 查看 模板工程 运行情况****
(4) 模板工程构建完成****
至此,模板工程构建完成,满足以下功能(请自行测试,此处不做赘述):
1) Web服务;
2) 数据库访问;
3) 热部署;
4) Lombok自动生成getter与setter;
5) Maven自动构建。
2. 使用 Maven 生成本地模板****
(1) 依据工程目录创建项目模板文件****
工程根目录键入如下命令:
mvn archetype:create-from-project |
---|
项目模板存放:
项目根目录/target/generated-sources/archetype/src/main/resources/archetype-resource
项目模板配置文件:
项目根目录/target/generated-sources/archetype/src/main/resources/maven/archetype-metadata.xml
(2) 安装项目模板至仓库****
PS:此处为本地仓库,远程仓库后续再做讲解
1) 进入项目根目录/target/generated-sources/archetype
2) 执行以下命令:mvn clean install
3) 执行成功如下所示:
完成模板工程在本地仓库的安装。
4) 核对模板工程目录结构,如下图所示:
至此,模板工程创建成功。
(3) 查看模板工程****
进入系统默认maven本地仓库目录:
macOS:
/usr/{用户名}/.m2/repository
Windows:
C:/用户/{用户名}/.m2/repository
(4) 查看模板工程配置文件信息****
模板工程archetype-catalog.xml内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<archetype-catalog xsi:schemaLocation="http://maven.apache.org/plugins/maven-archetype-plugin/archetype-catalog/1.0.0 http://maven.apache.org/xsd/archetype-catalog-1.0.0.xsd"
xmlns="http://maven.apache.org/plugins/maven-archetype-plugin/archetype-catalog/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<archetypes>
<archetype>
<groupId>com.maven.archetype</groupId>
<artifactId>mavenArchetype-archetype</artifactId>
<version>0.0.1-SNAPSHOT</version>
<description>Demo project for Spring Boot</description>
</archetype>
</archetypes>
</archetype-catalog>
复制代码
3. 使用模板生成新工程****
(1) 命令行方式生成****
命令解析:
命令行 | 作用与说明 |
---|---|
mvn archetype:generate | |
-DgroupId=com.maven.archetype.test | #新建项目的工程名 |
-DartifactId=mavneArchetypeTest | #要创建的项目名称 |
-Dversion=1.0.0-SNAPSHOT | #要创建的项目的版本号 |
-Dpackage=com.maven.archetype | #要创建的项目的基础包名 |
-DarchetypeGroupId=com.maven.archetype | #./m2下的xml里的标签值 |
-DarchetypeArtifactId=mavenArchetype-archetype | #./m2下的xml里的标签值 |
-DarchetypeVersion=0.0.1-SNAPSHOT | #./m2下的xml里的标签值 |
-B | |
-DarchetypeCatalog=local | #从本地仓库选取模板 |
-DinteractiveMode=false |
Windows下可执行命令:
命令1:
mvn archetype:generate ^ -DgroupId=com.maven.archetype.test ^ -DartifactId=mavneArchetypeTest ^ -Dversion=1.0.0-SNAPSHOT ^ -Dpackage=com.maven.archetype ^ -DarchetypeGroupId=com.maven.archetype ^ -DarchetypeArtifactId=mavenArchetype-archetype ^ -DarchetypeVersion=0.0.1-SNAPSHOT ^ -B ^ -DarchetypeCatalog=local ^ -DinteractiveMode=false
命令2:
mvn archetype:generate -DgroupId=com.maven.archetype.test -DartifactId=mavneArchetypeTest -Dversion=1.0.0-SNAPSHOT -Dpackage=com.maven.archetype -DarchetypeGroupId=com.maven.archetype -DarchetypeArtifactId=mavenArchetype-archetype -DarchetypeVersion=0.0.1-SNAPSHOT -B -DarchetypeCatalog=local -DinteractiveMode=false
(2) 查看 依据项目模板生成的新工程 情况****
新工程与模板工程目录结构请自行比对:
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>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.6.7</version> <!-- lookup parent from repository -->
</parent>
<groupId>com.maven.archetype.test</groupId>
<artifactId>mavneArchetypeTest</artifactId>
<version>1.0.0-SNAPSHOT</version>
<name>mavneArchetypeTest</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<!-- <dependency>-->
<!-- <groupId>org.springframework.boot</groupId>-->
<!-- <artifactId>spring-boot-starter-jdbc</artifactId>-->
<!-- </dependency>-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
<optional>true</optional>
</dependency>
<!-- <dependency>-->
<!-- <groupId>mysql</groupId>-->
<!-- <artifactId>mysql-connector-java</artifactId>-->
<!-- <scope>runtime</scope>-->
<!-- </dependency>-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<excludes>
<exclude>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</exclude>
</excludes>
</configuration>
</plugin>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<groupId>org.apache.maven.plugins</groupId>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>
</project>
复制代码
三、启动新工程****
四、手动生成模板工程步骤****
MacOS生成方式
1. mvn archetype:create-from-project
2. cd target/generated-sources/archetype
3. mvn clean install
4. mvn archetype:generate -DarchetypeCatalog=local
5. open /Users/test/mavenArchtypeTest/
6. mvn archetype:create-from-project
7. mvn install
8. mvn clean install
9. mvn archetype:crawl
10. mvn deploy
说明:其中第9,第10步需要结合Nexus方可完成,同时需要配置pom.xml中私服的相关配置,待后续文章中逐一阐述。
Windows部分命令请自行调整
模板工程源码下载:gitee.com/CodeCaptain…
新工程源码下载:gitee.com/CodeCaptain…
五、FAQ****
问题1:maven-compiler-plugin:3.8.1 Fatal error compiling: 无效的目标发行版: 17****
解决方法:
修改pom.xml中以下信息,与标签为1.8
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<groupId>org.apache.maven.plugins</groupId>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
复制代码
问题2:maven-archetype-plugin:3.2.1:create-from-project 依据当前项目创建失败****
描述:
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-archetype-plugin:3.2.1:create-from-project (default-cli) on project maven Archetype: Invoker process ended with result different than 0!
解决方法:
尝试在以下目录加入maven 的settings.xml。此处可复用,maven安装目录下conf中的settings.xml至:macOS:/usr/{用户名}/.m2/repository Windows:C:/用户/{用户名}/.m2/repository |
---|