20 多个 Maven 命令和选项(备忘单)

2023-11-17

介绍

Maven 是 Java 应用程序最流行的项目和依赖关系管理工具之一。 Maven 提供了许多命令和选项来帮助您完成日常任务。

本备忘单使用示例 Maven 项目来演示一些有用的 Maven 命令。它最初是为 OpenJDK 13.0.1 和 Maven 3.6.3 编写的。这些命令已通过 OpenJDK 19.0.1 和 Maven 3.8.7 进行验证。

Maven 命令备忘单

Maven Commands Cheat Sheet
Maven Commands Cheat Sheet

mvn clean

此命令通过删除目标目录来清理 Maven 项目:

  1. mvn 干净

输出示例:

Output
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ maven-example-jar --- [INFO] Deleting /Users/sammy/Desktop/maven-examples/maven-example-jar/target [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------

mvn compiler:compile

此命令编译 Maven 项目的 Java 源类:

  1. maven编译器:编译

输出示例:

Output
[INFO] --- maven-compiler-plugin:3.8.1:compile (default-cli) @ maven-example-jar --- [INFO] Changes detected - recompiling the module! [INFO] Compiling 1 source file to /Users/sammy/Desktop/maven-examples/maven-example-jar/target/classes [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------

mvn compiler:testCompile

该命令编译Maven项目的测试类:

  1. maven编译器:testCompile

输出示例:

Output
[INFO] --- maven-compiler-plugin:3.8.1:testCompile (default-cli) @ maven-example-jar --- [INFO] Changes detected - recompiling the module! [INFO] Compiling 1 source file to /Users/sammy/Desktop/maven-examples/maven-example-jar/target/test-classes [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------

mvn package

该命令构建 Maven 项目并将其打包成JAR, WAR, etc.:

  1. MVN包

输出示例:

Output
[INFO] --- maven-compiler-plugin:3.8.1:compile (default-compile) @ maven-example-jar --- [INFO] Changes detected - recompiling the module! [INFO] Compiling 1 source file to /Users/sammy/Desktop/maven-examples/maven-example-jar/target/classes ... [INFO] --- maven-compiler-plugin:3.8.1:testCompile (default-testCompile) @ maven-example-jar --- [INFO] Changes detected - recompiling the module! [INFO] Compiling 1 source file to /Users/sammy/Desktop/maven-examples/maven-example-jar/target/test-classes ... [INFO] --- maven-surefire-plugin:2.12.4:test (default-test) @ maven-example-jar --- [INFO] Surefire report directory: /Users/sammy/Desktop/maven-examples/maven-example-jar/target/surefire-reports ------------------------------------------------------- T E S T S ------------------------------------------------------- Running com.example.maven.classes.AppTest Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.005 sec Results : Tests run: 1, Failures: 0, Errors: 0, Skipped: 0 [INFO] [INFO] --- maven-jar-plugin:2.4:jar (default-jar) @ maven-example-jar --- [INFO] Building jar: /Users/sammy/Desktop/maven-examples/maven-example-jar/target/maven-example-jar-0.0.1-SNAPSHOT.jar [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS

输出显示了该位置JAR文件就在之前"BUILD SUCCESS"信息。注意package目标执行compile, testCompile, and test打包构建之前的目标。

mvn install

此命令构建 Maven 项目并安装项目文件 (JAR, WAR, pom.xml等)到本地存储库:

  1. mvn install

输出示例:

Output
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ maven-example-jar --- ... [INFO] --- maven-compiler-plugin:3.8.1:compile (default-compile) @ maven-example-jar --- ... [INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ maven-example-jar --- ... [INFO] --- maven-compiler-plugin:3.8.1:testCompile (default-testCompile) @ maven-example-jar --- ... [INFO] --- maven-surefire-plugin:2.12.4:test (default-test) @ maven-example-jar --- ... [INFO] --- maven-jar-plugin:2.4:jar (default-jar) @ maven-example-jar --- ... [INFO] --- maven-install-plugin:2.4:install (default-install) @ maven-example-jar --- [INFO] Installing /Users/sammy/Desktop/maven-examples/maven-example-jar/target/maven-example-jar-0.0.1-SNAPSHOT.jar to /Users/sammy/.m2/repository/com/example/maven/maven-example-jar/0.0.1-SNAPSHOT/maven-example-jar-0.0.1-SNAPSHOT.jar [INFO] Installing /Users/sammy/Desktop/maven-examples/maven-example-jar/pom.xml to /Users/sammy/.m2/repository/com/example/maven/maven-example-jar/0.0.1-SNAPSHOT/maven-example-jar-0.0.1-SNAPSHOT.pom [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS

mvn deploy

此命令将工件部署到远程存储库:

  1. MVN部署

项目中应正确配置远程存储库pom.xml file distributionManagement标签。 Maven 中的服务器条目settings.xml文件用于提供身份验证详细信息。

mvn validate

此命令验证 Maven 项目,以确保一切正确并且所有必要的信息均可用:

  1. MVN验证

mvn dependency:tree

该命令生成Maven项目的依赖树:

  1. mvn依赖:树

输出示例:

Output
[INFO] --- maven-dependency-plugin:2.8:tree (default-cli) @ Mockito-Examples --- [INFO] com.example.mockito:Mockito-Examples:jar:1.0-SNAPSHOT [INFO] +- org.junit.platform:junit-platform-runner:jar:1.2.0:test [INFO] | +- org.apiguardian:apiguardian-api:jar:1.0.0:test [INFO] | +- org.junit.platform:junit-platform-launcher:jar:1.2.0:test [INFO] | \- org.junit.platform:junit-platform-suite-api:jar:1.2.0:test [INFO] | \- org.junit.platform:junit-platform-commons:jar:1.2.0:test [INFO] +- org.junit.jupiter:junit-jupiter-engine:jar:5.2.0:test [INFO] | +- org.junit.platform:junit-platform-engine:jar:1.2.0:test [INFO] | | \- org.opentest4j:opentest4j:jar:1.1.0:test [INFO] | \- org.junit.jupiter:junit-jupiter-api:jar:5.2.0:test [INFO] +- org.mockito:mockito-junit-jupiter:jar:2.19.0:test [INFO] | \- org.mockito:mockito-core:jar:2.19.0:test [INFO] | +- net.bytebuddy:byte-buddy:jar:1.8.10:test [INFO] | +- net.bytebuddy:byte-buddy-agent:jar:1.8.10:test [INFO] | \- org.objenesis:objenesis:jar:2.6:test [INFO] \- org.testng:testng:jar:6.14.3:test [INFO] +- com.beust:jcommander:jar:1.72:test [INFO] \- org.apache-extras.beanshell:bsh:jar:2.0b6:test

mvn dependency:analyze

此命令分析 Maven 项目以识别未使用的已声明和已使用的未声明依赖项:

  1. mvn依赖:分析

输出示例:

Output
[INFO] --- maven-dependency-plugin:2.8:analyze (default-cli) @ Mockito-Examples --- [WARNING] Used undeclared dependencies found: [WARNING] org.junit.jupiter:junit-jupiter-api:jar:5.2.0:test [WARNING] org.mockito:mockito-core:jar:2.19.0:test [WARNING] Unused declared dependencies found: [WARNING] org.junit.platform:junit-platform-runner:jar:1.2.0:test [WARNING] org.junit.jupiter:junit-jupiter-engine:jar:5.2.0:test [WARNING] org.mockito:mockito-junit-jupiter:jar:2.19.0:test

它通过识别未使用的依赖项并将其从构建中删除来减少构建大小。pom.xml file.

mvn archetype:generate

该命令生成不同类型的骨架Maven项目,例如JAR、Web 应用程序、Maven 站点等:

  1. mvn 原型:生成

输出示例:

Output
[INFO] ---------------------------------------------------------------------------- [INFO] Using following parameters for creating project from Archetype: maven-archetype-quickstart:1.4 [INFO] ---------------------------------------------------------------------------- ... [INFO] Project created from Archetype in dir: /Users/sammy/Desktop/maven-examples/maven-example-jar [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS

推荐阅读:使用 Maven 原型创建 Java 项目

mvn site:site

此命令为项目生成一个站点:

  1. mvn 站点:站点

你会注意到一个site目录中的target执行此命令后的目录。

/Users/sammy/Desktop/maven-examples/maven-example-jar/target/site/index.html

里面会有多个HTML文件site提供与项目相关的信息的目录。

mvn test

此命令运行项目的测试用例:

  1. mvn test

输出示例:

Output
[INFO] ------------------------------------------------------- [INFO] T E S T S [INFO] ------------------------------------------------------- [INFO] Running TestSuite first-element second-element Employee setName Argument = Sammy ... [INFO] Results: [INFO] [INFO] Tests run: 5, Failures: 0, Errors: 0, Skipped: 0 [INFO] [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS

mvn compile

此命令编译项目的源 Java 类:

  1. MVN编译

输出示例:

Output
[INFO] --- maven-compiler-plugin:3.7.0:compile (default-compile) @ Mockito-Examples --- [INFO] Changes detected - recompiling the module! [WARNING] File encoding has not been set, using platform encoding UTF-8, i.e. build is platform dependent! [INFO] Compiling 10 source files to /Users/sammy/Desktop/maven-examples/Mockito-Examples/target/classes

它与之前的类似mvn compiler:compile命令,但运行整个 Maven 生命周期compile.

mvn verify

此命令构建项目,运行所有测试用例并对集成测试的结果运行任何检查以确保满足质量标准:

  1. MVN验证

Maven 选项

Maven 提供了许多命令行选项来改变 Maven 构建过程:

mvn -help

此命令行选项打印 Maven 用法和所有可用选项:

  1. mvn -help

输出示例:

Output
usage: mvn [options] [<goal(s)>] [<phase(s)>] Options: -am,--also-make If project list is specified, also build projects required by the list -amd,--also-make-dependents If project list is specified, also build projects that depend on projects on the list -B,--batch-mode Run in non-interactive (batch) mode (disables output color) -b,--builder <arg> The id of the build strategy to use -C,--strict-checksums Fail the build if checksums don't match -c,--lax-checksums Warn if checksums don't match -cpu,--check-plugin-updates Ineffective, only kept for backward compatibility

mvn -f dir/pom.xml package

此命令行选项从不同位置构建项目:

  1. mvn -f dir/pom.xml package

提供pom.xml构建项目的文件位置。当您必须从脚本运行 Maven 构建时,它非常有用。

mvn -o package

此命令行选项运行 Maven 构建离线模式:

  1. mvn -o package

当您拥有所有必需的内容时,它很有用JAR下载到本地存储库中并且您不希望 Maven 查找任何JARs 在远程存储库中。

mvn -q package

此命令行选项运行 Maven 构建静音模式,以便仅显示测试用例结果和错误:

  1. mvn -q package

mvn -X package

此命令行选项打印 Maven 版本并运行构建调试模式,以便显示所有消息:

  1. mvn -X package

输出示例:

Output
Apache Maven 3.6.3 (cecedd343002696d0abb50b32b541b8a6ba2883f) Maven home: /Users/sammy/Downloads/apache-maven-3.6.3 Java version: 13.0.1, vendor: Oracle Corporation, runtime: /Library/Java/JavaVirtualMachines/jdk-13.0.1.jdk/Contents/Home Default locale: en_IN, platform encoding: UTF-8 OS name: "mac os x", version: "10.15.1", arch: "x86_64", family: "mac" [DEBUG] Created new class realm maven.api [DEBUG] Importing foreign pacakges into class realm maven.api [DEBUG] Imported: javax.annotation.* < plexus.core [DEBUG] Imported: javax.annotation.security.* < plexus.core [DEBUG] Imported: javax.enterprise.inject.* < plexus.core [DEBUG] Imported: javax.enterprise.util.* < plexus.core [DEBUG] Imported: javax.inject.* < plexus.core

mvn -v

此命令行选项显示 Maven 版本信息:

  1. mvn -v

输出示例:

Output
Apache Maven 3.6.3 (cecedd343002696d0abb50b32b541b8a6ba2883f) Maven home: /Users/sammy/Downloads/apache-maven-3.6.3 Java version: 13.0.1, vendor: Oracle Corporation, runtime: /Library/Java/JavaVirtualMachines/jdk-13.0.1.jdk/Contents/Home Default locale: en_IN, platform encoding: UTF-8 OS name: "mac os x", version: "10.15.1", arch: "x86_64", family: "mac"

mvn -V package

此命令行选项打印 Maven 版本,然后继续构建:

  1. mvn -V package

它相当于以下命令:

  1. mvn -v;mvn package

mvn -DskipTests package

此命令行选项应用skipTests系统属性从构建周期中跳过单元测试用例:

  1. mvn -DskipTests package

您还可以跳过测试用例执行:

  1. mvn -Dmaven.test.skip=true package

mvn -T 4 clean install

此命令行选项告诉 Maven 使用指定的线程数运行并行构建:

  1. mvn -T 4 clean install

它在可以并行构建模块的多个模块项目中非常有用。它可以减少项目的构建时间。

参考

  • Maven 插件
  • Maven CLI 选项参考
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

20 多个 Maven 命令和选项(备忘单) 的相关文章

随机推荐

  • Linux 中的 Chgrp 命令(更改组)

    在 Linux 中 每个文件都与一个所有者和一个组相关联 并具有确定哪些用户可以读取 写入或执行该文件的权限 本文介绍了如何使用chgrp命令更改给定文件的组所有权 chgrp命令语法 The chgrp命令采用以下形式 chgrp OPT
  • 如何在 CentOS 7 上安装 Ruby

    Ruby 是当今最流行的语言之一 它具有优雅的语法 是 Ruby on Rails 框架背后的语言 本文展示了在 CentOS 上安装 Ruby 的几种不同方法 每种安装方法都有自己的优点 您可以选择最适合您的一种安装方法 先决条件 在开始
  • 如何每 5 分钟、10 分钟或 15 分钟运行一次 Cron 作业

    cron 作业是按指定时间间隔执行的任务 可以将任务安排为按分钟 小时 每月的某一天 每月 每周的某一天或这些的任意组合运行 Cron 作业通常用于自动化系统维护或管理 例如备份数据库或数据 使用最新的安全补丁更新系统 检查磁盘空间使用情况
  • Bash:追加到文件

    在 Bash 中 有多种方法可以将文本附加到文件中 本文解释了其中一些 要将文本附加到文件 您需要对其具有写入权限 否则 您将收到权限被拒绝的错误 使用重定向运算符附加到文件 gt gt 重定向允许您捕获命令的输出并将其作为输入发送到另一个
  • 在 C/C++ 中使用 INT_MAX 和 INT_MIN

    在本文中 我们将了解在 C C 中使用 INT MAX 和 INT MIN 这些实际上是有用的宏 它们表示最大和最小整数值 让我们用一些例子来看看它 使用 INT MAX 和 INT MIN INT MAX 是一个表示最大整数值的宏 同样
  • Google Guice 依赖注入示例教程

    谷歌指南是在应用程序中自动执行依赖项注入的框架 如果您直接遇到这里 我建议您查看一下依赖注入示例在这里我们了解了传统对象创建方法的问题以及依赖注入的实现优势 在上一篇教程中 我们学习了如何在应用程序中手动实现依赖注入 但是 当应用程序中的类
  • 如何在 CentOS 7 上安装 MySQL

    介绍 MySQL是一个开源数据库管理系统 通常作为流行的一部分安装LEMP Linux Nginx MySQL MariaDB PHP Python Perl 堆栈 它使用关系数据库和 SQL 结构化查询语言 来管理其数据 CentOS 7
  • 如何配置 DNS 循环负载平衡以实现高可用性

    介绍 尽管这是一种更有争议的技术 但利用提供商的全球影响力在地理上分发应用程序的一个好方法是使用和管理 DNS 响应 即返回的 IP 地址列表 除非您愿意在硬件和基础设施成本上花费一点钱 否则使用 DNS 来实现高可用性可能是一个很好的方法
  • 如何在 CentOS 7 上使用 FreeIPA 设置集中式 Linux 身份验证

    介绍 FreeIPA是 Linux 的开源安全解决方案 提供帐户管理和集中身份验证 类似于 Microsoft 的 Active Directory FreeIPA 构建在多个开源项目之上 包括 389 Directory Server M
  • Spring Boot 教程

    欢迎来到 Spring Boot 教程 春季启动是 Pivotal Team The Spring Team 的一个全新项目 它是在现有 Spring 框架之上开发的框架 Spring Boot 教程 Spring Boot使用全新的开发模
  • 如何使用 Whisper 和 Spleeter AI 工具制作卡拉 OK 视频

    介绍 人工智能工具可用于处理图像 音频或视频以产生新颖的结果 直到最近 在不使用大量时间和计算能力的情况下 自动编辑图像或音频仍然具有挑战性 即使如此 通常也只能运行交钥匙滤波器来删除声音中的某些频率或更改图像的调色板 较新的方法使用人工智
  • JSF PrimeFaces 教程

    欢迎来到 JSF Primefaces 教程 JavaServer Faces是当今用于实现 Java Web 应用程序用户界面的领先框架之一 JSF 已经组件化了 Web 应用程序 特别是与界面相关的部分 因为 JSF 中的所有单一视图都
  • 如何在 Ubuntu 14.04 服务器上使用 Nginx 安装和保护 phpMyAdmin

    介绍 很大一部分网站和应用程序都需要 MySQL 等关系数据库管理系统 然而 并非所有用户都愿意从命令行管理数据 为了解决这个问题 创建了一个名为 phpMyAdmin 的项目 以提供基于 Web 的管理界面形式的替代方案 在本指南中 我们
  • 如何保护您的服务器免受 POODLE SSLv3 漏洞的影响

    介绍 2014年10月14日 SSL加密协议第3版中的漏洞被披露 该漏洞被称为 POODLE Padding Oracle On Downgraded Legacy Encryption 允许攻击者使用中间人攻击以纯文本形式读取使用此版本协
  • 如何配置 vsftpd 在 CentOS VPS 上使用 SSL/TLS

    介绍 Warning FTP 不安全 考虑使用 SFTP 代替 FTP FTP 即文件传输协议 是一种在本地和远程服务器之间传输文件的方式 尽管这种文件传输方法非常流行且无处不在 但由于其设计缺乏固有的安全性 它已经不再受欢迎 如上所述 S
  • 如何在 Ubuntu 14.04 上安装、配置和部署 Rocket.Chat

    介绍 火箭聊天是一个用 Meteor 构建的开源消息传递应用程序 它支持视频会议 文件共享 语音消息 拥有功能齐全的 API 等等 Rocket Chat 对于那些喜欢完全控制自己的通信的人来说非常有用 在本教程中 我们将在新的 Ubunt
  • 如何在 Ubuntu 22.04 上使用 xrdp 启用远程桌面协议

    作者选择了COVID 19 救济基金接受捐赠作为为捐款而写程序 介绍 远程桌面协议 RDP 是 Microsoft 开发的一种网络协议 允许用户远程访问远程 Windows 服务器的图形用户界面并与之交互 RDP 采用客户端 服务器模型 其
  • Apache 配置错误 AH00558:无法可靠地确定服务器的完全限定域名

    介绍 阿帕奇AH00558 Could not reliably determine the server s fully qualified domain name当 Apache 未配置全局变量时 会生成消息ServerName指示 该
  • 如何安装 Puppet 来管理您的服务器基础设施

    Note 本教程的较新版本使用 Puppet Server 而不是 Puppet with Passenger 可以在此处找到 如何在 Ubuntu 14 04 上的主代理设置中安装 Puppet 4 介绍 Puppet 来自 Puppet
  • 20 多个 Maven 命令和选项(备忘单)

    介绍 Maven 是 Java 应用程序最流行的项目和依赖关系管理工具之一 Maven 提供了许多命令和选项来帮助您完成日常任务 本备忘单使用示例 Maven 项目来演示一些有用的 Maven 命令 它最初是为 OpenJDK 13 0 1