MVN2️⃣项目结构与搭建 & 版本管理规范

1、项目结构

1.1、核心结构(❗)

Maven 提倡约定大于配置,提供了公共的标准目录结构

  • src
    • main:源代码
      • java
      • resources
    • test:测试类
      • java
      • resources
  • pom.xml(基本结构)
    • modelVersion:POM 版本。
    • GAV 坐标:项目本身作为资源,被其它项目引用时使用。
    • packaging:打包方式。
    • dependencies:项目引用的资源依赖。

1.2、示例

user 模块引用 goods 模块,打包方式为 jar。

<?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>indi.jaywee</artifactId>
    <artifactId>project-user</artifactId>
    <version>1.0</version>
    <packaging>jar</packaging>

    <dependencies>
        <dependency>
            <groupId>indi.jaywee</groupId>
            <artifactId>project-goods</artifactId>
            <version>1.1</version>
        </dependency>
    </dependencies>

</project>

2、构建命令

2.1、说明

  1. 进入项目根目录对应的命令行(cmd),执行构建命令。
  2. 可一次执行多个命令,使用空格分隔。
  3. Maven 构建命令,对应 Maven 工程的生命周期与插件

2.2、常用命令(❗)

格式:以 mvn 开头,后接功能参数。

  1. compile:编译项目源码,生成字节码文件。

  2. clean:清理编译结果。

  3. test:编译并执行测试源码,生成测试报告。

  4. package:将编译后的项目打包。

  5. install:将当前打包项目,安装到本地仓库。

    # 编译
    mvn compile
    # 清理
    mvn clean
    # 测试
    mvn test
    # 打包
    mvn package
    # 安装
    mvn install
    
    # 同时执行多个
    mvn clean compile
    

3、项目搭建

3.1、手动

  1. 根据 Maven 规范,手动创建项目结构。
  2. 编写 pom.xml、源码等。
  3. 执行构建命令。

3.2、插件

示例:使用 archetype:generate 插件,基于模板生成 Maven 项目。

格式:mvn archetype:generate,常用参数如下。

  • GAV

  • archetypeArtifactId:模板名称

  • interactiveMode:是否开启交互模式

    mvn archetype:generate
    	-DgroupId= \
    	-DartifactId= \
    	-Dversion= \
    	-DarchetypeArtifactId=模板名称 \
    	-DinteractiveMode=
    	# 其它参数
    

模板说明

  • 常用模板

    # Java
    maven-archetype-quickstart
    # Web
    maven-archetype-webapp
    
  • 生成项目结构

    • Java 模板:👉 本文 1.1
    • Web 模板:相比 Java 模板多了 src\main\webapp,少了 *\resources

3.3、IDEA(❗)

3.3.1、版本兼容

IntelliJ IDEA 和 Maven 之间存在版本兼容问题

IDEA 版本 Maven 版本
2021 3.8.1+
2020 3.6.3+
2018 3.6.1+

3.3.2、创建 Maven 项目

① 创建项目

  1. 新建项目

    • 无模板(👍):创建无模板的项目,在项目中导入所需依赖。

    • 使用模板:勾选 Create from archetype,选择需要的模板。

      image-20210722173119364

  2. 项目信息

    • 项目名(与 AritifactId 一致)
    • 项目存放路径
    • GAV 坐标
  3. 选择 Maven

    • IDEA 默认使用内置 Bundled Maven、默认配置文件、默认仓库地址

    • 需覆盖为下载的 Maven、配置文件、本地自定义仓库

      image-20210722173950302

② 结构说明

  • 标记文件夹:如图所示,按功能标注相应文件夹。

    image

  • Maven Projects(❗)

    • 刷新:在 pom.xml 中导入依赖后,需要刷新 Maven。

    • 生命周期:即👉本文 2 构建命令。

    • 插件

    • 依赖:当前项目导入的依赖

      image

③ 更改 Maven

  • IDEA 内:对当前项目生效。

    image-20210722172306593
  • IDEA 启动时:对新建的 Maven 项目默认选择。

3.3.3、创建 Maven 配置(❗)

  • 好处

    1. 同时执行多个构建命令,简化操作。
    2. 支持 debug 模式。
  • 步骤:Add Configuration - Maven - 填写信息

    • name:配置名称。

    • Working Directory:工作目录,即构建的项目。

    • Command Line:配置的插件命令,多个命令之间用空格分开。

      image

3.3.4、自定义插件(❗)

在项目中,除了 Maven 构建命令对应的插件,还可以配置自定义的插件

示例:配置 web 项目 Tomcat 插件。

  1. Maven 仓库:查找 Tomcat Maven 插件的坐标。

  2. pom.xml 配置:如下所示,build - plugins - plugin - gav。

  3. 刷新 Maven,即可在 Maven plugins 看到自定义插件。

    <!-- 构建 -->
    <build>
        <!-- 插件配置 -->
        <plugins>
            <!-- 具体插件 -->
            <plugin>
                <!-- GAV -->
                <groupId>org.apache.tomcat.maven</groupId>
                <artifactId>tomcat7-maven-plugin</artifactId>
                <version>2.2</version>
            </plugin>
        </plugins>
    </build>
    

4、版本管理规范

为了提高可读性和可维护性,Maven 工程版本的命名也有一定规范。

(👉 类似 Java 命名规范)

4.1、工程版本号约定

  • 规范:主版本.次版本.增量版本.里程碑版本
    • 主版本:重大架构变更,如 Spring 5.x.x 相对于 Spring 4.x.x
    • 次版本:较大功能增加或变更,或全面系统的修复 bug。
    • 增量版本:重大 bug 修复
    • 里程碑版本:版本内部的里程碑,相比下一个正式版本来说还不太稳定,需待更多测试。
  • 示例:Spring 的 5.2.6.RELEASE

4.2、里程碑版本

常用版本

含义 说明 特点
SNAPSHOT 快照版 项目开发过程中临时输出的版本 不稳定,持续更新
RELEASE 发布版 项目开发到一定阶段里程碑后,向团队外部发布较稳定的版本 稳定,不变更
alpha 内测版 不稳定,持续更新
beta 公测版 比 alpha 完善一点 不稳定,持续更新
posted @ 2022-09-01 23:04  Jaywee  阅读(83)  评论(0编辑  收藏  举报

👇