什么是maven

maven是一个可以管理依赖,自动化构建项目的工具

  • 管理依赖:jar包管理,下载、版本
  • 构建项目:完成项目代码的编译、测试、打包、部署

maven的核心概念

  1. POM:一个文件,它的名称是pom.xml(项目对象模型)
    maven把一个项目当做一个模型来使用。可以控制maven构建项目的过程,管理jar依赖,pom就是maven的
    灵魂,maven的所有操作都是围绕pom来进行的
  2. 约定的目录结构:maven项目的目录和文件的位置都是规定好的
  3. 坐标:是一个唯一的字符串,用来表示资源的
  4. 依赖管理:管理你的项目可以使用的jar.文件
  5. 仓库管理:资源存放的位置
  6. 生命周期:maven工具构建项目的过程
  7. 插件和目标:执行maven构建的时候用的工具是插件
  8. 继承
  9. 聚合

maven的生命周期

maven的生命周期就是maven构建项目的过程:清理、编译、测试、报告、打包、安装、部署

相关命令:

  • maven可以独立使用,通过命令,完成maven的生命周期的执行maven执行命令时,真正完成功能的是插件,插件就是一些jar文件、一些类
  • mvn clean:清除(会删除原来编译和测试的目录,即target目录)
  • mvn compile:编译主程序(会在当前目录生成一个target目录,里面存放着编译主程序生成的字节码文件)
  • mvn test-compile:编译测试程序
  • mvn test:测试(会生成一个目录surefire-reports,保存测试结果)
  • mvn package:打包主程序
  • mvn install:安装主程序(会把本工程打包,并且按照本工程的坐标保存到本地仓库中)
  • mvn deploy:部署主程序

依赖管理

依赖的范围:就是在maven构建项目中哪些阶段中起作用。使用scope标签来设置

  • compile:scope的值默认为compile。表示这个依赖在构建项目的所有阶段中都起作用
  • test:表示只在测试的阶段中起作用
  • provided:只在编译、测试的阶段中起作用

maven的常用设置

maven的属性设置:

<properties>
        <!--maven构建项目使用的编码,避免中文乱码-->
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <!--编译代码使用的JDK版本-->
        <maven.compiler.source>1.8</maven.compiler.source>
        <!--运行程序使用的JDK版本-->
        <maven.compiler.target>1.8</maven.compiler.target>
  </properties>

maven的全局变量:自定义的属性
步骤:

  1. 在<properties>中通过自定义标签声明变量(标签名就是变量名)
  2. 在pom.xml文件中的其他位置,使用 ${标签名} 使用变量的值

自定义全局变量一般是定义依赖的版本号,当你的项目要使用多个相同的版本号时,可以先使用全局变量定义这个版本号,然后再其他地方直接使用 ${标签名} 引用即可

资源插件:在<build>中加上这个资源插件,在编译的时候,会把main/java目录下的文件拷贝到target/classes目录中

<resources>
    <resource>
                <directory>src/main/resources</directory>
                <includes><!--包括目录下的.properties,.xml 文件都会扫描到-->
                     <include>**/*.properties</include>
                     <include>**/*.xml</include>
                     <include>**/*.txt</include>
                </includes>
                <!--filtering 选项 false 不启用过滤器, *.property 已经起到过滤的作用了 -->
                <filtering>false</filtering>
            </resource>
</resources>
最后修改:2021 年 06 月 07 日 03 : 08 PM
如果觉得我的文章对你有用,请随意赞赏