返回随笔Java全栈
完成ENGINEERING NOTE

Maven

记录 Maven 标准项目结构、坐标、依赖配置、作用域和依赖传递等项目管理基础。

后端Maven

Maven项目组织格式

使用不同的编译器会导致不同的文件组织格式,使得同一个项目不能使用不同编译器编译,而maven提供了一份标准的文件组织格式。 其标准文件格式如下:

maven-project
    -src
        -main             实际项目资源
            -java        java源代码目录
            -resources   配置文件目录
        -test            测试项目资源
            -java
            -resources
        pom.xml          项目配置文件

Maven坐标

maven中的坐标是资源的唯一标识,通过该坐标可以唯一定位资源位置。使用坐标来定义项目或引入项目中需要的依赖。 主要组成如下:

<groupId>com.coffeebar</groupId>    //定义当前Maven项目隶属组织名称,通常为域名反写
<artifactId>untitled</artifactId>   //定义当前Maven项目名称,通常是模块名称
<version>1.0-SNAPSHOT</version>     //定义当前版本号

配置依赖

在maven中配置依赖需要在pom.xml中引入dependencies标签,如下:

<dependencies>
        <dependency>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-classic</artifactId>
            <version>1.2.3</version>
        </dependency>
</dependencies>

dependencies中包括了一对dependency标签。如果第一次使用某个依赖,在填写相应信息后可直接下载。依赖信息可以跳转 Maven仓库找到

  • 依赖具有传递性
  • 可以使用scope标签指定依赖的范围,如下:
**scope值** **主程序** **测试程序** **打包(运行)**
compile(default) Y Y Y
test Y
provided Y Y
runtime Y Y
## **生命周期** Maven包括三个生命周期:clean,default和site,在同一个生命周期内后面的生命阶段依赖于前面。 - clean.clean:移除上一次构建生成的文件 - default.compile:编译项目源代码 - default.test:使用合适的测试框架并运行测试 - default.package:将编译后的文件打包成jar,war等 - default.install:安装项目到本地仓库 可以在idea中执行maven脚本,也可以在命令行中输入mvn + 对应生命阶段执行生命阶段。