Maven——概述(一)

前言

Maven 翻译为”专家”、”内行”,是 Apache 下的一个纯 Java 开发的开源项目。Maven 是一个项目管理工具,可以对 Java 项目进行构建、依赖管理。

功能

Maven主要做了两件事:

  • 统一开发规范与工具
  • 统一管理jar包

约定配置

Maven 提倡使用一个共同的标准目录结构,Maven 使用约定优于配置的原则,大家尽可能的遵守这样的目录结构。如下所示:

  • ${basedir}
    存放pom.xml和所有的子目录
  • ${basedir}/src/main/java
    项目的java源代码
  • ${basedir}/src/main/resources
    项目的资源,比如说property文件,springmvc.xml
  • ${basedir}/src/test/java
    项目的测试类,比如说Junit代码
  • ${basedir}/src/test/resources
    测试用的资源
  • ${basedir}/src/main/webapp/WEB-INF
    web应用文件目录,web项目的信息,比如存放web.xml、本地图片、jsp视图页面
  • ${basedir}/target
    打包输出目录
  • ${basedir}/target/classes
    编译输出目录
  • ${basedir}/target/test-classes
    测试编译输出目录
  • Test.java
    Maven只会自动运行符合该命名规则的测试类
  • ~/.m2/repository
    Maven默认的本地仓库目录位置

安装/配置

Maven是个Java工具,所以你必须安装了Java才能继续。

maven安装与配置

Snapshot 版本与 Release 版本

  1. Snapshot 版本代表不稳定、尚处于开发中的版本。
  2. Release 版本则代表稳定的版本。

协同开发时,如果 A 依赖构件 B,由于 B 会更新,B 应该使用 SNAPSHOT 来标识自己。这种做法的必要性可以反证如下:

  1. 如果 B 不用 SNAPSHOT,而是每次更新后都使用一个稳定的版本,那版本号就会升得太快,每天一升甚至每个小时一升,这就是对版本号的滥用。
  2. 如果 B 不用 SNAPSHOT, 但一直使用一个单一的 Release 版本号,那当 B 更新后,A 可能并不会接受到更新。因为 A 所使用的 repository 一般不会频繁更新 release 版本的缓存(即本地 repository),所以B以不换版本号的方式更新后,A在拿B时发现本地已有这个版本,就不会去远程Repository下载最新的 B
文章目录
  1. 1. 前言
  2. 2. 功能
  3. 3. 约定配置
  4. 4. 安装/配置
  5. 5. Snapshot 版本与 Release 版本
|