Maven速查手册

toc

介绍

Maven 是一个跨平台的项目管理工具,主要用于项目构建,依赖管理,项目信息管理。自动化构建过程,从清理、编译、测试和生成报告、再到打包和部署。Maven 通过一小段描述信息来管理项目。

作用

Maven 最熟悉的一个概念就是 POM,Maven 项目会有一个 pom.xml 文件, 在这个文件里面添加相应配置,Maven 就会自动帮你下载相应 jar 包
<dependency>
  <groupId>com.google.firebase</groupId> 项目名
  <artifactId>firebase-admin</artifactId> 项目模块
  <version>5.3.1</version> 项目版本
</dependency>
groupId 定义了项目组,组和项目所在组织或公司,或者开源项目名称,一般为公司域名反写,比如 com.google.firebase 等等
artifactId 定义了 Maven 项目的名称,在组中的唯一 ID,在同一个项目中可能有不同的子项目,可以定义不同的 artifactId。 artifactId 也是构建完成项目后生成的 jar 包或者 war 包的文件名的一部分。
version 顾名思义,就是项目的版本号,如果项目维发布,一般在开发中的版本号习惯性加上SNAPSHOT, 比如 1.0-SNAPSHOT

依赖范围

scope 定义了依赖范围,如果依赖范围为 test ,那么该依赖只对测试有效,也就是说在测试代码中引入 junit 有效,在主代码中用 junit 会造成编译错误。如果不声明依赖范围则默认为 compile ,表示该依赖对主代码和测试代码都有效。
Maven 有以下几种依赖范围:
compile 编译依赖,在编译、测试、运行时都有效
test 测试依赖,只对于测试 classpath 有效, JUnit 典型
provided 已提供依赖,只在编译和测试有效,运行时无效, servlet-api 编译和测试项目时需要该依赖,但是在运行项目时,由于容器已经提供,不需要 Maven 重复引入
runtime 运行时依赖,对于测试和运行有效,编译主代码无效, JDBC驱动实现,项目主代码编译只需要JDK提供的JDBC接口,只有执行测试或者运行项目才需要实现上述接口的具体JDBC驱动
system 系统依赖范围,和 provided 范围依赖一致,但是使用 system 范围的依赖时必须通过 systemPath 元素显示地指定依赖文件的路径。
import 导入依赖,一般不用

常用命令

1. mvn compile 编译源代码,生成target目录。
2. mvn test-compile 编译测试代码
3. mvn test 运行测试
5. mvn package 编译并且打包,根据pom.xml打成war或jar。
6. mvn -Dtest package 打包但不测试。完整命令为:mvn -D maven.test.skip=true package
7. mvn install 在本地Repository中安装jar
8. mvn clean 清除产生的项目,target没有了。
9. mvn eclipse:eclipse 生成eclipse项目
10.mvn idea:idea 生成idea项目
11.mvn eclipse:clean 清除eclipse的一些系统设置

跳过测试打包
clean package -Pproduct -DskipTests
clean package -Ptest -DskipTests

猜你喜欢

转载自www.cnblogs.com/gustavo/p/12237574.html