乐趣区

Java从零单排-maven常用命令

简单介绍 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

    1. jar war 如果是需要部署的项目,则需要打包成 war 类型,如果只是内部调用或者是作服务使用,则推荐打包成 jar 类型。
    2. pom POM 是最简单的打包类型,也不执行任何代码,只是为了聚合工程或传递依赖用的。

remove 本地已编译文件

mvn clean

编译应用源码

mvn compile
  • maven 首先下载相关插件与相关依赖(当再次执行则不需要)
  • 编译,(把生成的相关文件放在 ${basedir}/target/classes 目录下)

测试

mvn test
  • 首先下载相关插件,包括测试所需的工具
  • 编译
  • 测试

打包

mvn package

确保 packagingjar, 执行了下列工作:

  • 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
退出移动版