配置环境变量

官网下载maven后解压(我的在C:\Maven\apache-maven-3.9.0)

  • M2_HOME
    • C:\Maven\apache-maven-3.9.0
  • Path
    • %M2_HOME%\bin

验证

mvn -v

至此就配置完毕了

约定的目录结构

  • src/main/java

    • 主程序功能代码,service,dao,controller等
  • src/main/resources

    • 主程序要使用的配置文件
  • src/test/java

    • 测试程序,junit的代码放在这里
  • src/test/resources

    • 测试程序使用的配置文件
  • pom.xml

    • maven的核心文件,必须有

pom文件

  • maven工具各种配置
  • 自己项目的坐标
  • property属性
  • 依赖dependencies,其它工具库,框架的gav坐标
  • 构建build, 控制maven构建项目时一些操作,比如设置编译阶段,使用的jdk等

坐标(gav)

  • groupId:组织名称
  • artifactId:项目名称
  • version:版本号

依赖dependencies

依赖类似导入,把其它的jar加入到项目中

在pom的dependency中加入

<dependencies>
//在此加入依赖信息
</dependencies>

仓库

存放的内容

  • 第三方的jar
  • 你自己项目的jar
  • maven运行时需要的jar

仓库分类

  • 本地仓库
  • 中央仓库和镜像
  • 私服

命令

  • mvn clean
    • 清理
  • mvn compile
    • 编译src/main/java目录中的java代码为class文件
  • mvn test-compile
    • 编译src/test/java目录中的测试代码的
  • mvn test
    • 执行src/test/java目录下的测试程序
  • mvn package
    • 打包, javase程序是jar , web程序是war
  • mvn install
    • 安装,把jar安装到maven仓库

依赖范围

  • compile
    • 默认的, 在maven构建项目的各个阶段都需要的依赖
  • test
    • 只有在执行test测试是需要的依赖
  • provider
    • 在代码编写,运行,测试阶段需要的依赖, 打包,部署由服务器提供,比如tomcat有servlet的jar

image-20230227170629550

定义全局变量

一般用于定义依赖的版本号

  • 先定义 <标签名就是变量名>变量值</...>
  • 使用变量:${标签名}

创建resource

pom.xml<build>加入 <resouces>插件的声明
作用是把src/main/java目录中的文件拷贝到target/classess目录中

<resources>
    <resource>
        <directory>src/main/java</directory>
        <includes>
            <include>**/*.properties</include>
            <include>**/*.xml</include>
        </includes>
        <filtering>false</filtering>
    </resource>
</resources>

maven自己的属性

<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <maven.compiler.source>11</maven.compiler.source>
    <maven.compiler.target>11</maven.compiler.target>
</properties>

配置IDEA

setting-Build...-Build Toos-Maven中设置自己的Maven目录和setting files

Build Toos-Maven-Runner-VM Options中添加-DarchetypeCatalog=internal可以提高速度

阿里云镜像

settings.xml中添加以下代码

<mirror>
    <id>alimaven</id>
    <name>aliyun maven</name>
    <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
    <mirrorOf>central</mirrorOf>
</mirror>