Maven简介

  • 提供了一套标准化的项目结构 (编译文件夹,测试文件夹……)
  • 提供了一套标准化的构建流程(编译,测试,打包,发布……)
  • 提供了一套依赖管理机制(不需要再自己找依赖的 jar 包并导入)

Maven使用

  • 常用命令
    • compile :编译。在项目下会出现一个 target 目录,编译后的字节码文件就放在该目录下
    • clean:清理。删除项目下的 target 目录
    • test:测试。该命令会执行所有的测试代码(项目中 test 文件夹下的)。
    • package:打包。在项目的 terget 目录下有一个jar包(将当前项目打成的jar包)
    • install:安装。将当前项目打成jar包,并安装到本地仓库。
  • 默认生命周期:compile --> test --> package --> install

Maven依赖管理

  • Maven坐标
    • groupId:定义当前Maven项目隶属组织名称(通常是域名反写,例如:com.apache)
    • artifactId:定义当前Maven项目名称(通常是模块名称,例如 order-service、goods-service)
    • version:定义当前项目版本号
    • scope:当前依赖包的作用范围
    • scope标签中参数的作用范围如下所示
依赖范围 编译classpath 测试classpath 运行classpath 例子
compile Y Y Y logback
test - Y - Junit
provided Y Y - servlet-api
runtime - Y Y jdbc驱动
system Y Y - 存储在本地的jar包

pom.xml文件中代码示例

<?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>com.xzxhappy</groupId>
    <artifactId>MavenDemo</artifactId>
    <version>1.0-SNAPSHOT</version>
<!--这是本项目的属性:隶属组织、对应开发的模块、版本号-->

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

<!--使用坐标管理依赖,下面这个是实例-->
    <dependencies>

        <dependency>
            <!--对应组织-->
            <groupId>com.alibaba</groupId>
            <!--模块-->
            <artifactId>druid</artifactId>
            <!--版本号-->
            <version>1.1.10</version>
            <!--作用域-->
            <scope>compile</scope>
        </dependency>

        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.16</version>
            <scope>test</scope>
        </dependency>

    </dependencies>
<!--实例到这边-->

</project>

Maven项目目录结构

Maven目录结构

Q.E.D.


在读程序猿+指弹发烧友+力量举、街头健身爱好者。