Maven Cheat Sheet

heel

Introduction

Maven is a cross-platform project management tool, mainly for projects to build, dependency management, project information management. Automated build process, from cleaning, compiling, testing and reporting, to the packaging and deployment. Maven to manage the project by a short description.

effect

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

Dependent range

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

Common Commands

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

Guess you like

Origin www.cnblogs.com/gustavo/p/12237574.html