基于IDEA进行Maven工程构建

Java全能学习+面试指南:https://javaxiaobear.cn

1. 构建概念和构建过程

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

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

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

2. 命令方式项目构建

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

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

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

命令触发练习:

bash 复制代码
mvn 命令 命令

#清理
mvn clean
#清理,并重新打包
mvn clean package
#执行测试代码
mvn test

3. 可视化方式项目构建

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

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

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

4. 构建插件、命令、生命周期命令之间关系

  • 构建生命周期

    我们发现一个情况!当我们执行package命令也会自动执行compile命令!

    xml 复制代码
    [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] ------------------------------------------------------------------------

    这种行为就是因为构建生命周期产生的!构建生命周期可以理解成是一组固定构建命令的有序集合,触发周期后的命令,会自动触发周期前的命令!!!

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

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

    主要两个构建生命周期:

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

      包含命令:clean

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

    复制代码
    包含命令:compile -  test - package - install - deploy
  • 插件、命令、周期三者关系(了解)

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

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

    最终进行构建的是插件!

相关推荐
lhldsg40 分钟前
智慧场馆解决方案小程序开发实战:从架构设计到部署指南
java·小程序·uni-app
Freak嵌入式1 小时前
Pico UART 数据收发实战:硬件配置、MicroPython 编程
java·开发语言·单片机·嵌入式硬件·生活
devilnumber2 小时前
Oracle 与 MySQL substr 函数差异总结
java·数据库·mysql·oracle
cfm_29142 小时前
线程池阻塞队列
java·开发语言
坐吃山猪2 小时前
【多线程】ThreadPool线程池参数说明
java·网络
evans在进步3 小时前
Java 常用设计模式(二):装饰器、适配器、责任链、模板方法、策略与观察者
java·开发语言·设计模式
jvmind_dev3 小时前
频繁 new JedisCluster 之后,对象池为什么回不去了?
java·后端
AKA__Zas3 小时前
文件 I/O(速通版
java·intellij-idea·学习方法
学长毕业设计3 小时前
基于SpringBoot的咖啡馆管理系统的设计与实现(源码+文档+讲解视频)
java·spring boot·后端
骇客野人3 小时前
SpringBoot业财一体化系统设计和落地实施方案
java·spring boot·后端