依赖关系
Maven定义了几种依赖关系,分别是compile
、test
、runtime
和provided
:
| 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
它会自动使用最新版本的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的另一个作用是把项目的
mvnw、
mvnw.cmd和
.mvn`提交到版本库中,可以使所有开发人员使用统一的Maven版本。