简单介绍 maven 中的常用命令
maven 的生命周期共 9 步:
clean =>validate =>
compile =>test =>
package =>verify =>
install =>site =>
deploy
新建 Maven 项目:
mvn -B archetype:generate \
-DarchetypeGroupId=org.apache.maven.archetypes \
-DgroupId=com.mycompany.app \
-DartifactId=my-app
得到如下 pom.xml:
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.mycompany.app</groupId>
<artifactId>my-app</artifactId>
<packaging>jar</packaging>
<version>1.0-SNAPSHOT</version>
<name>Maven Quick Start Archetype</name>
<url>http://maven.apache.org</url>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>
- groupId 定义该项目所属的公司、项目组
- artifactId 定义具体该项目名
-
packaging 打包方式分为 jar,pom,war
- jar war 如果是需要部署的项目,则需要打包成 war 类型,如果只是内部调用或者是作服务使用,则推荐打包成 jar 类型。
- pom POM 是最简单的打包类型,也不执行任何代码,只是为了聚合工程或传递依赖用的。
remove 本地已编译文件
mvn clean
编译应用源码
mvn compile
- maven 首先下载相关插件与相关依赖(当再次执行则不需要)
- 编译,(把生成的相关文件放在
${basedir}/target/classes
目录下)
测试
mvn test
- 首先下载相关插件,包括测试所需的工具
- 编译
- 测试
打包
mvn package
确保 packaging
为jar
, 执行了下列工作:
-
mvn test
+ 打为可执行的 jar 包
安装在本地库
mvn install
-
mvn package
+ 部署在本地库
部署在远程库
mvn deploy
-
mvn install
+ 部署于远程仓库
其他命令
\\ 检查工程,检查所有需要的 dep 是否可用。mvn validate
\\ 检查打好的包,检查包是否有效且达到标准。mvn verify
\\ 生成 maven install 的 html 报告
mvn site
\\ 版本
mvn -v
\\ 打印依赖树:mvn dependency:tree
组合命令
例如 只打包不测试:
mvn -Dtest package
或者,仅编译测试相关代码,并不运行,运行下列命令:
mvn test-compile