框架建设实战1——创建frame-parent

结合框架的结构,首先我们创建所以使用框架的parent,用以自顶向下的框架组件管理。

本框架基于maven进行依赖管理。具体步骤如下:

1.创建一个module

创建一个maven工程。命名为frame-parent。只有一个pom文件。文件内容主要包含:

XML 复制代码
  <parent> 
    <groupId>org.springframework.boot</groupId>  
    <artifactId>spring-boot-starter-parent</artifactId>  
    <version>2.7.14</version>  
    <relativePath/>
  </parent> 

可以看到,框架继承了springboot的parent。

2.GAV 命名

XML 复制代码
  <groupId>com.test</groupId>  
  <artifactId>frame-parent</artifactId>  
  <name>frame-parent</name>  
  <packaging>pom</packaging>  
  <version>1.0.0-SNAPSHOT</version>

3.定义公用的属性

XML 复制代码
<properties> 
    <java.version>1.8</java.version>  
    <spring-cloud.version>2021.0.3</spring-cloud.version>
    <!-- 所有二方包版本的定义 -->
    <frame-bom.version>1.0.0-SNAPSHOT</frame-bom.version>
    <!-- 所有三方包版本的定义 -->  
    <frame-out-bom.version>1.0.0-SNAPSHOT</frame-out-bom.version>
    <maven-compiler-plugin.version>3.8.1</maven-compiler-plugin.version>  
    <maven-source-plugin.version>3.2.1</maven-source-plugin.version>  
    <maven-surefire-plugin.version>3.2.2</maven-surefire-plugin.version>  
    <lombok-plugin.version>1.18.24</lombok-plugin.version>  
    <mapstruct-plugin.version>1.3.1.Final</mapstruct-plugin.version>  
    <lombok-mapstruct-binding-plugin.version>0.2.0</lombok-mapstruct-binding-plugin.version>  
</properties>

可以看到,parent纳管了frame-bom和frame-out-bom,分别管理二方包和三方包。BOM,即物料清单的意思。

4.依赖管理

XML 复制代码
  <dependencyManagement> 
    <dependencies>
      <!-- spring cloud 相关依赖 -->
      <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-dependencies</artifactId>
        <version>${spring-cloud.version}</version>
        <type>pom</type>
        <scope>import</scope>
      </dependency>

      <!-- 由frame-util-bom 管理所有springboot之外的第三方依赖 -->
      <dependency> 
        <groupId>com.test</groupId>  
        <artifactId>frame-out-bom</artifactId>
        <version>${frame-out-bom.version}</version>
        <type>pom</type>  
        <scope>import</scope> 
      </dependency>

      <!-- 由frame-bom管理所有二方包依赖 -->
      <dependency>
        <groupId>com.test</groupId>
        <artifactId>frame-bom</artifactId>
        <version>${frame-bom.version}</version>
        <type>pom</type>
        <scope>import</scope>
      </dependency>
    </dependencies> 
  </dependencyManagement>

其中frame-bom 和 frame-out-bom 的定义见下文。

5.插件管理

此部分配置在build标签内。分为两部分。 一部分是插件依赖:

XML 复制代码
<plugins> 
      <!-- maven基础插件 -->  
      <plugin> 
        <groupId>org.apache.maven.plugins</groupId>  
        <artifactId>maven-compiler-plugin</artifactId> 
      </plugin>  
      <plugin> 
        <groupId>org.apache.maven.plugins</groupId>  
        <artifactId>maven-source-plugin</artifactId> 
      </plugin>
</plugins>

另一部分,为插件管理:

XML 复制代码
  <pluginManagement> 
      <plugins> 
        <plugin> 
          <groupId>org.apache.maven.plugins</groupId>  
          <artifactId>maven-compiler-plugin</artifactId>  
          <version>${maven-compiler-plugin.version}</version>  
          <configuration> 
            <source>${java.version}</source>  
            <target>${java.version}</target>  
            <annotationProcessorPaths> 
              <path> 
                <groupId>org.projectlombok</groupId>  
                <artifactId>lombok</artifactId>  
                <version>${lombok-plugin.version}</version> 
              </path>  
              <path> 
                <groupId>org.mapstruct</groupId>  
                <artifactId>mapstruct-processor</artifactId>  
                <version>${mapstruct-plugin.version}</version> 
              </path>  
              <path> 
                <groupId>org.projectlombok</groupId>  
                <artifactId>lombok-mapstruct-binding</artifactId>  
                <version>${lombok-mapstruct-binding-plugin.version}</version> 
              </path> 
            </annotationProcessorPaths> 
          </configuration> 
        </plugin>  
        <plugin> 
          <groupId>org.apache.maven.plugins</groupId>  
          <artifactId>maven-source-plugin</artifactId>  
          <version>${maven-source-plugin.version}</version>  
          <configuration> 
            <attach>true</attach> 
          </configuration>  
          <executions> 
            <execution> 
              <phase>package</phase>  
              <goals> 
                <goal>jar-no-fork</goal> 
              </goals> 
            </execution> 
          </executions> 
        </plugin>
      </plugins>
    </pluginManagement>

可见,parent对lombok和MapStruct的版本进行了统一控制。

相关推荐
保持学习ing2 天前
苍穹外卖day3--公共字段填充+新增菜品
java·阿里云·实战·springboot·前后端·外卖项目·阿里云文件存储
默默coding的程序猿3 天前
3.前端和后端参数不一致,后端接不到数据的解决方案
java·前端·spring·ssm·springboot·idea·springcloud
衍生星球4 天前
Maven 3.9.6的下载和配置
java·maven·springboot
还是鼠鼠14 天前
日志技术-Logback入门程序
java·后端·spring·springboot·logback
starstarzz17 天前
解决idea无法正常加载lombok包
java·ide·spring·intellij-idea·springboot·web
vivo互联网技术19 天前
Spring Boot 启动优化实践
后端·springboot·spring启动加速·异步初始化
七烦20 天前
vue3 + springboot实现微信登录
vue·springboot·微信公众号
LUCIAZZZ22 天前
项目拓展-Apache对象池,对象池思想结合ThreadLocal复用日志对象
java·jvm·数据库·spring·apache·springboot
LUCIAZZZ22 天前
钉钉机器人-自定义卡片推送快速入门
java·jvm·spring boot·机器人·钉钉·springboot
LUCIAZZZ22 天前
项目拓展-Jol分析本地对象or缓存的内存占用
java·开发语言·jvm·数据库·缓存·springboot