依赖关系

Maven定义了几种依赖关系,分别是compiletestruntimeprovided

| scope | 说明 | 示例 | | —- | —- | —- |

| compile | 编译时需要用到该jar包(默认) | commons-logging |

| test | 编译Test时需要用到该jar包 | junit |

| runtime | 编译时不需要,但运行时需要用到 | mysql |

| provided | 编译时需要用到,但运行时由JDK或某个服务器提供 | servlet-api |

常用命令

mvn clean:清理所有生成的class和jar;
mvn clean compile:先清理,再执行到compile
mvn clean test:先清理,再执行到test,因为执行test前必须执行compile,所以这里不必指定compile
mvn clean package:先清理,再执行到package
大多数phase在执行过程中,因为我们通常没有在pom.xml中配置相关的设置,所以这些phase什么事情都不做。
经常用到的phase其实只有几个:

  • clean:清理
  • compile:编译
  • test:运行测试
  • package:打包

    安装Maven Wrapper

    安装Maven Wrapper最简单的方式是在项目的根目录(即pom.xml所在的目录)下运行安装命令: ``` mvn -N io.takari:maven:0.7.6:wrapper
  1. 它会自动使用最新版本的Maven。注意`0.7.6`Maven Wrapper的版本。最新的Maven Wrapper版本可以去[官方网站](https://github.com/takari/maven-wrapper)查看。<br />如果要指定使用的Maven版本,使用下面的安装命令指定版本,例如`3.3.3`:

mvn -N io.takari:maven:0.7.6:wrapper -Dmaven=3.3.3

安装后,查看项目结构:

my-project ├── .mvn │ └── wrapper │ ├── MavenWrapperDownloader.java │ ├── maven-wrapper.jar │ └── maven-wrapper.properties ├── mvnw ├── mvnw.cmd ├── pom.xml └── src ├── main │ ├── java │ └── resources └── test ├── java └── resources

发现多了`mvnw`、`mvnw.cmd`和`.mvn`目录,我们只需要把`mvn`命令改成`mvnw`就可以使用跟项目关联的Maven。例如:

mvnw clean package

在Linux或macOS下运行时需要加上`./`:

./mvnw clean package

`` Maven Wrapper的另一个作用是把项目的mvnwmvnw.cmd.mvn`提交到版本库中,可以使所有开发人员使用统一的Maven版本。