介绍
作用
常用命令
介绍
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
来源: http://www.bubuko.com/infodetail-3396684.html