Maven《四》-- 基于Idea进行Maven工程构建

目录

[🐶4.1 构建概念和构建过程](#🐶4.1 构建概念和构建过程)

[🐶4.2 命令方式项目构建](#🐶4.2 命令方式项目构建)

[1. 🥙编译:mvn compile](#1. 🥙编译:mvn compile)

[2. 🥙清理:mvn clean](#2. 🥙清理:mvn clean)

[3. 🥙打包:mvn package](#3. 🥙打包:mvn package)

[4. 🥙安装:mvn install](#4. 🥙安装:mvn install)

[🐶4.3 可视化方式项目构建](#🐶4.3 可视化方式项目构建)

[🐶4.4 构建插件、命令、生命周期命令之间关系](#🐶4.4 构建插件、命令、生命周期命令之间关系)

[1. 🥙构建生命周期](#1. 🥙构建生命周期)

2.🥙构建周期作用:会简化构建过程

[3. 🥙插件、命令、周期三者关系(了解)](#3. 🥙插件、命令、周期三者关系(了解))


🐶4.1 构建概念和构建过程

项目构建是指将源代码、依赖库和资源文件等转换成可执行或可部署的应用程序的过程,在这个过程中包括编译源代码、链接依赖库、打包和部署等多个步骤。

项目构建是软件开发过程中至关重要的一部分,它能够大大提高软件开发效率,使得开发人员能够更加专注于应用程序的开发和维护,而不必关心应用程序的构建细节。

同时,项目构建还能够将多个开发人员的代码汇合到一起,并能够自动化项目的构建和部署,大大降低了项目的出错风险和提高开发效率。常见的构建工具包括 Maven、Gradle、Ant 等。

🐶4.2 命令方式项目构建

|-------------|------------------|
| 命令 | 描述 |
| mvn compile | 编译项目,生成target文件 |
| mvn package | 打包项目,生成jar或war文件 |
| mvn clean | 清理编译或打包后的项目结构 |
| mvn install | 打包后上传到maven本地仓库 |
| mvn deploy | 只打包,上传到maven私服仓库 |
| mvn site | 生成站点 |
| mvn test | 执行测试源码 |

war包打包插件和jdk版本不匹配:pom.xml 添加以下代码即可

java 复制代码
<build>
    <!-- jdk17 和 war包版本插件不匹配 -->
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-war-plugin</artifactId>
            <version>3.2.2</version>
        </plugin>
    </plugins>
</build>

命令触发练习

在module文件夹下右击选中open in path

此时进入这个module的文件夹路径中

在上面的窗口中输入cmd,此时进入cmd窗口中会直接在相应的目录下

*1. 🥙*编译:mvn compile
java 复制代码
#编译
mvn compile

编译结果:

此外,编译结束之后会在idea的项目结构中生成一个target文件夹。编译结果就存放在这个target目录下

*2. 🥙*清理:mvn clean
java 复制代码
#清理
mvn clean

执行结果:

每一次编译结果存放的target文件夹消失了

*3. 🥙*打包:mvn package
java 复制代码
#打包
mvn package

编译结果:

*4. 🥙*安装:mvn install
java 复制代码
#安装到本地仓库
mvn install

编译结果:

🐶4.3 可视化方式项目构建

注意:打包(package)和安装( install )的区别是什么

打包是将工程打成jar或war文件,保存在target目录下

安装是将当前工程所生成的jar或war文件,安装到本地仓库,会按照坐标保存到指定位置

🐶4.4 构建插件、命令、生命周期命令之间关系

1. 🥙 构建生命周期

  • 我们发现一个情况!当我们执行package命令也会自动执行compile命令!
java 复制代码
[INFO] --------------------------------[ jar ]---------------------------------
[INFO] 
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ mybatis-base-curd ---
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ mybatis-base-curd ---
[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ mybatis-base-curd ---
[INFO] --- maven-compiler-plugin:3.1:testCompile (default-testCompile) @ mybatis-base-curd ---
[INFO] --- maven-surefire-plugin:2.12.4:test (default-test) @ mybatis-base-curd ---
[INFO] --- maven-jar-plugin:2.4:jar (default-jar) @ mybatis-base-curd ---
[INFO] Building jar: D:\javaprojects\backend-engineering\part03-mybatis\mybatis-base-curd\target\mybatis-base-curd-1.0-SNAPSHOT.jar
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  5.013 s
[INFO] Finished at: 2023-06-05T10:03:47+08:00
[INFO] ------------------------------------------------------------------------
  • 这种行为就是因为构建生命周期产生的!构建生命周期可以理解成是一组固定构建命令的有序集合,触发周期后的命令,会自动触发周期前的命令!!!

2.🥙 构建周期作用:会简化构建过程

  • 例如:项目打包 mvn clean package即可。

  • 主要两个构建生命周期:

    • 清理周期:主要是对项目编译生成文件进行清理

    • 包含命令:clean

  • 默认周期:定义了真正构件时所需要执行的所有步骤,它是生命周期中最核心的部分

    java 复制代码
    包含命令:compile -  test - package - install - deploy
  • 包含命令:compile - test - package - install - deploy

3. 🥙 插件、命令、周期三者关系(了解)

  • 周期→包含若干命令→包含若干插件

  • 使用周期命令构建,简化构建过程!

  • 最终进行构建的是插件!

相关推荐
郑洁文1 小时前
基于Spring Boot的流浪动物救助网站
java·spring boot·后端·毕设·流浪动物救助
螺丝钉code2 小时前
JAVA项目 Claude code CLAUDE.md 到底应该怎么写
java·人工智能·claude code
摇滚侠3 小时前
Maven 入门+高深 单一架构案例 54-59
java·架构·maven·intellij-idea
VidDown3 小时前
Webhook 调试器:让第三方回调“原形毕露”
java·开发语言·javascript·编辑器·postman
折哥的程序人生 · 物流技术专研3 小时前
Java 23 种设计模式:从踩坑到精通 | 原型模式 —— 克隆对象,深拷贝与浅拷贝的坑你踩过吗?
java·设计模式·架构·原型模式·单一职责原则
装不满的克莱因瓶3 小时前
基于 OpenResty 扩展开发实现动态服务注册与发现能力
java·开发语言·架构·openresty
程序员小羊!4 小时前
06Java 异常机制与常用类
java
weixin_523185324 小时前
Java基础知识总结(四):引用数据类型与参数传递机制
java·开发语言·python
宸津-代码粉碎机5 小时前
Spring AI企业级实战|从RAG优化到Agent多工具调度
java·大数据·人工智能·后端·python·spring
噢,我明白了5 小时前
QueryWrapper的使用
java