30常用 Maven 命令

2024-09-09 17:04
文章标签 maven 命令 常用 30

本文主要是介绍30常用 Maven 命令,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

        Maven 是一个强大的项目管理和构建工具,它广泛用于 Java 项目的依赖管理、构建流程和插件集成。Maven 的命令行工具提供了大量的命令来帮助开发人员管理项目的生命周期、依赖和插件。以下是 常用 Maven 命令的使用场景及其详细解释。

1. mvn clean

  • 使用场景:清理项目的生成目录,通常用于删除项目中自动生成的文件(如 target/ 目录)。
  • 共性规律:清理操作与构建步骤密切相关,保持项目的清洁。
  • 注意事项:清理后需要重新编译和构建项目。

2. mvn compile

  • 使用场景:编译项目的源代码(通常是 src/main/java 目录下的代码)。
  • 共性规律:属于项目构建生命周期的一部分,通常在开发过程中频繁使用。
  • 特殊技巧:在开发中经常配合 mvn test 来验证代码是否正常编译。

3. mvn test

  • 使用场景:运行项目中的单元测试,测试代码一般位于 src/test/java
  • 共性规律:集成测试框架,如 JUnit 或 TestNG,来自动化测试。
  • 注意事项:测试失败会中断构建流程,确保测试代码没有破坏项目的正常构建。

4. mvn package

  • 使用场景:将项目打包为 JAR 或 WAR 文件,生成在 target/ 目录中。
  • 共性规律:通常作为项目生命周期的一部分,依赖于之前的编译和测试步骤。
  • 特殊技巧:可结合 -DskipTests 来跳过测试阶段。

5. mvn install

  • 使用场景:将项目的打包文件安装到本地 Maven 仓库,供其他本地项目依赖。
  • 共性规律:经常在本地开发中使用,帮助项目之间共享依赖。
  • 注意事项:确保本地仓库中没有旧版本的冲突。

6. mvn deploy

  • 使用场景:将构建后的项目发布到远程 Maven 仓库(如 Nexus、Artifactory)。
  • 共性规律:通常用于持续集成或部署流水线,将构建成果发布到共享仓库中。
  • 特殊技巧:配合配置文件 (settings.xml) 和远程仓库权限管理。

7. mvn validate

  • 使用场景:验证项目的配置文件 pom.xml 是否正确,确保基本的配置无误。
  • 共性规律:生命周期的初期步骤,用于检查项目是否能顺利进行后续操作。
  • 注意事项:此命令不会执行编译或构建操作。

8. mvn verify

  • 使用场景:在构建之后进行验证,通常用于集成测试、质量检查。
  • 共性规律:结合质量检测插件(如 Surefire、Failsafe)来确保项目符合要求。
  • 特殊技巧:适合与 mvn test 配合使用,确保构建质量。

9. mvn site

  • 使用场景:生成项目的站点文档,包括项目报告、依赖信息、测试覆盖率等。适合在发布项目时生成完整的项目文档。

  • 共性规律:Maven 的站点生成功能集成了多种报告插件,确保项目的可视化文档输出。

  • 注意事项:生成的站点需要通过 Web 服务器进行托管,Maven 只负责生成静态内容。

  • 特殊技巧:可以通过 site:deploy 命令将生成的站点自动上传到 Web 服务器,省去手动上传的麻烦。

10. mvn dependency:tree

  • 使用场景:用于查看项目的依赖树,分析依赖冲突和重复依赖。特别在调试依赖问题时非常有用。

  • 共性规律:Maven 的依赖管理非常强大,但也可能导致复杂的依赖关系,这个命令可以帮助理清依赖结构。

  • 特殊技巧:通过 -Dscope 参数可以只查看特定作用域的依赖,例如 -Dscope=runtime 只查看运行时依赖。

  • 注意事项:需要关注可能存在的依赖冲突(即多个版本的同一依赖)。

11. mvn dependency:resolve

  • 使用场景:解析并下载项目的所有依赖到本地仓库。
  • 共性规律:用于确保依赖已经成功下载,特别是在构建前检查。
  • 注意事项:如果仓库连接不畅,可能导致依赖解析失败。

12. mvn dependency:analyze

  • 使用场景:分析项目的依赖,检查是否有未使用的依赖或遗漏的依赖。
  • 共性规律:帮助优化项目中的依赖管理,确保只包含必要的依赖。
  • 特殊技巧:结合 mvn clean install,在项目构建过程中执行依赖分析。

13. mvn versions:display-dependency-updates

  • 使用场景:检查项目中是否存在新的依赖版本,这对于保持项目依赖的最新状态非常有帮助。

  • 共性规律:Maven 对依赖版本管理非常重要,定期检查更新能够避免使用过时或存在漏洞的库。

  • 注意事项:在更新依赖版本前,确保新版本与现有代码的兼容性,并在更新后运行全面的测试。

  • 特殊技巧:结合 versions:use-latest-releases 命令,可以自动将依赖更新到最新的稳定版本。

14. mvn versions:update-parent

  • 使用场景:更新项目的父 POM 版本,确保与最新的父项目版本对齐。
  • 共性规律:用于管理多模块项目或公司级别的项目框架。
  • 注意事项:更新父 POM 后,确保兼容性。

15. mvn versions:update-properties

  • 使用场景:更新 pom.xml 中定义的依赖版本号(属性),以符合最新的版本。
  • 共性规律:帮助项目自动更新依赖版本,简化手动维护。

16. mvn exec:java

  • 使用场景:用于运行在 Maven 项目中的 Java 类,而不需要构建整个项目。你可以在开发时测试一个类的行为或调试特定的代码片段。

  • 共性规律:需要配置 exec-maven-plugin 插件,并在配置中指定 mainClass

  • 注意事项:

    • 需要确保依赖的类和库在类路径中。
    • 适合快速测试和运行简单的 Java 程序,但不应替代完整的构建和测试流程。
    • 你可以通过 -Dexec.args 传递命令行参数给 Java 程序,灵活性非常高。

17. mvn exec:exec

  • 使用场景:执行任意命令或脚本,适用于集成自定义任务。
  • 共性规律:允许在 Maven 生命周期中插入额外的非 Java 任务。
  • 特殊技巧:可以用来运行外部工具或脚本。

18. mvn archetype:generate

  • 使用场景:用于创建一个新的 Maven 项目,选择合适的项目模板(archetype)开始开发。非常适合启动新项目。

  • 共性规律:Maven 项目通常由 archetype 生成,这确保了项目结构的一致性。

  • 注意事项:选择适合项目的 archetype 非常重要,否则可能需要在项目创建后进行大量的调整。

  • 特殊技巧:可以通过 -DarchetypeCatalog=internal 查看本地已安装的 archetypes,也可以通过 -DarchetypeCatalog=remote 从远程仓库中选择。

19. mvn help:describe

  • 使用场景:描述某个插件的目标和参数,帮助理解插件的用法。
  • 共性规律:适用于查询不熟悉的插件或目标的详细信息。
  • 特殊技巧:可以指定 goal,查看具体目标的说明。

20. mvn help:effective-pom

  • 使用场景:查看项目的有效 POM 文件,展示继承、插件和配置的最终结果。
  • 共性规律:帮助调试 POM 文件的继承和合并问题。
  • 特殊技巧:结合 mvn validate 检查 POM 的有效性。

21. mvn jar:jar

  • 使用场景:直接将项目打包为 JAR 文件,通常用于简化命令。
  • 共性规律:适合只需要生成 JAR 包,而不需要其他生命周期操作的场景。
  • 注意事项:确保项目已成功编译。

22. mvn war:war

  • 使用场景:将项目打包为 WAR 文件,用于 Web 应用程序的部署。
  • 共性规律:通常在 Web 项目中使用,适合部署到应用服务器。

23. mvn tomcat7:run

  • 使用场景:在本地启动 Tomcat 服务器,运行项目中的 Web 应用程序。
  • 共性规律:用于开发阶段快速测试 Web 项目,无需手动部署。
  • 特殊技巧:结合调试参数,如 -Xdebug,可以实现远程调试。

24. mvn dependency:purge-local-repository

  • 使用场景:清除本地 Maven 仓库中的特定依赖,以确保重新下载最新版本。
  • 共性规律:用于调试依赖冲突或确保依赖的正确性。
  • 特殊技巧:结合 -DreResolve=true 强制重新解析依赖。

25. mvn scm:checkin

  • 使用场景:将项目的更改提交到版本控制系统(如 Git)。
  • 共性规律:适合集成到 CI/CD 流程中,自动化提交构建后的代码。
  • 注意事项:需要正确配置 SCM 插件及凭证。

26. mvn dependency:go-offline

  • 使用场景:使用场景:这个命令用于提前下载所有项目所需的依赖、插件等资源,以便在没有网络连接的情况下构建项目。
  • 共性规律:适合在网络条件差或者需要离线构建的环境下使用。
  • 注意事项:执行此命令前,需要确保所有依赖已经在远程仓库中可用。
  • 特殊技巧:可以结合 clean 或其他构建命令,确保之后的所有步骤都可以在离线环境下完成。

27. mvn scm:update

  • 使用场景:从项目的 SCM(Source Control Management,源代码管理系统,如 Git 或 SVN)中更新项目代码,类似于 git pull 或 svn update
  • 共性规律:与源代码管理系统集成,自动拉取最新代码更新,适合与 CI/CD 流程结合。
  • 注意事项:确保正确配置了 pom.xml 中的 SCM 部分,并且有必要的凭证。
  • 特殊技巧:可结合 mvn scm:checkin 使用,实现自动化的拉取、提交等操作。

28. mvn help:effective-settings

  • 使用场景:显示合并后的有效设置文件(settings.xml),包括全局和用户级别的配置。这对于调试 Maven 配置非常有用。
  • 共性规律:Maven 在启动时会合并多个配置文件,此命令帮助你查看这些配置的最终结果。
  • 注意事项:需要确保 Maven 的全局和用户级别的 settings.xml 文件已经正确配置。
  • 特殊技巧:可以结合 help:effective-pom 查看整个项目的完整配置,方便调试和分析问题。

29. mvn dependency:sources

  • 使用场景:下载项目依赖的源代码,这对调试第三方库中的代码非常有用。
  • 共性规律:在调试过程中,开发人员可以通过查看依赖库的源代码更好地理解问题。
  • 注意事项:并不是所有的依赖库都提供源代码,某些私有库可能不会包含源代码。
  • 特殊技巧:可以结合 IDE(如 IntelliJ IDEA 或 Eclipse)的调试功能来更好地进行源码级别的调试。

30. mvn deploy:deploy-file

  • 使用场景:手动将某个 JAR 文件上传到远程 Maven 仓库。如果你有一个项目外部生成的 JAR 文件,并希望将其发布到 Maven 仓库时非常有用。
  • 共性规律:常用于发布非 Maven 项目构建的 JAR 文件,或者发布某些第三方库。
  • 注意事项:需要正确指定远程仓库的 URL 以及相应的凭证。
  • 特殊技巧:结合 pomFile 参数,可以同时上传 POM 文件,确保库的依赖关系正确解析。


总结

这些命令都体现了 Maven 强大的项目管理和构建能力。它们有以下共性:

  1. 配置驱动:大部分命令都依赖于 pom.xml 中的配置,因此配置文件的管理至关重要。
  2. 灵活性:通过命令行参数可以灵活定制执行行为,例如指定目标路径、依赖范围等。
  3. 依赖管理:Maven 对依赖管理非常重视,许多命令涉及到依赖的检查、更新和冲突解决。

注意事项

  • 版本兼容性:使用 Maven 命令时,确保使用的 Maven 版本与项目的需求匹配,避免因版本差异导致的问题。
  • 测试覆盖率:在执行构建、测试、打包等命令前,确保代码有足够的测试覆盖率,防止引入潜在的 Bug。
  • 持续集成:许多命令适合集成到持续集成(CI)系统中,确保代码在每次提交后都能通过构建和测试。

特殊技巧

  • 组合使用:许多 Maven 命令可以组合使用,例如 clean 和 install,可以通过 mvn clean install 一次性执行多个目标。
  • 插件扩展:Maven 的功能可以通过插件进行扩展,定制插件配置能够满足不同项目的需求。

希望这些信息能帮助你更好地理解和使用 Maven 命令。

这篇关于30常用 Maven 命令的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1151751

相关文章

HarmonyOS学习(七)——UI(五)常用布局总结

自适应布局 1.1、线性布局(LinearLayout) 通过线性容器Row和Column实现线性布局。Column容器内的子组件按照垂直方向排列,Row组件中的子组件按照水平方向排列。 属性说明space通过space参数设置主轴上子组件的间距,达到各子组件在排列上的等间距效果alignItems设置子组件在交叉轴上的对齐方式,且在各类尺寸屏幕上表现一致,其中交叉轴为垂直时,取值为Vert

JS常用组件收集

收集了一些平时遇到的前端比较优秀的组件,方便以后开发的时候查找!!! 函数工具: Lodash 页面固定: stickUp、jQuery.Pin 轮播: unslider、swiper 开关: switch 复选框: icheck 气泡: grumble 隐藏元素: Headroom

每天认识几个maven依赖(ActiveMQ+activemq-jaxb+activesoap+activespace+adarwin)

八、ActiveMQ 1、是什么? ActiveMQ 是一个开源的消息中间件(Message Broker),由 Apache 软件基金会开发和维护。它实现了 Java 消息服务(Java Message Service, JMS)规范,并支持多种消息传递协议,包括 AMQP、MQTT 和 OpenWire 等。 2、有什么用? 可靠性:ActiveMQ 提供了消息持久性和事务支持,确保消

【C++】_list常用方法解析及模拟实现

相信自己的力量,只要对自己始终保持信心,尽自己最大努力去完成任何事,就算事情最终结果是失败了,努力了也不留遗憾。💓💓💓 目录   ✨说在前面 🍋知识点一:什么是list? •🌰1.list的定义 •🌰2.list的基本特性 •🌰3.常用接口介绍 🍋知识点二:list常用接口 •🌰1.默认成员函数 🔥构造函数(⭐) 🔥析构函数 •🌰2.list对象

常用的jdk下载地址

jdk下载地址 安装方式可以看之前的博客: mac安装jdk oracle 版本:https://www.oracle.com/java/technologies/downloads/ Eclipse Temurin版本:https://adoptium.net/zh-CN/temurin/releases/ 阿里版本: github:https://github.com/

零基础学习Redis(10) -- zset类型命令使用

zset是有序集合,内部除了存储元素外,还会存储一个score,存储在zset中的元素会按照score的大小升序排列,不同元素的score可以重复,score相同的元素会按照元素的字典序排列。 1. zset常用命令 1.1 zadd  zadd key [NX | XX] [GT | LT]   [CH] [INCR] score member [score member ...]

在cscode中通过maven创建java项目

在cscode中创建java项目 可以通过博客完成maven的导入 建立maven项目 使用快捷键 Ctrl + Shift + P 建立一个 Maven 项目 1 Ctrl + Shift + P 打开输入框2 输入 "> java create"3 选择 maven4 选择 No Archetype5 输入 域名6 输入项目名称7 建立一个文件目录存放项目,文件名一般为项目名8 确定

2024网安周今日开幕,亚信安全亮相30城

2024年国家网络安全宣传周今天在广州拉开帷幕。今年网安周继续以“网络安全为人民,网络安全靠人民”为主题。2024年国家网络安全宣传周涵盖了1场开幕式、1场高峰论坛、5个重要活动、15场分论坛/座谈会/闭门会、6个主题日活动和网络安全“六进”活动。亚信安全出席2024年国家网络安全宣传周开幕式和主论坛,并将通过线下宣讲、创意科普、成果展示等多种形式,让广大民众看得懂、记得住安全知识,同时还

maven 编译构建可以执行的jar包

💝💝💝欢迎莅临我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:「stormsha的主页」👈,「stormsha的知识库」👈持续学习,不断总结,共同进步,为了踏实,做好当下事儿~ 专栏导航 Python系列: Python面试题合集,剑指大厂Git系列: Git操作技巧GO

Maven创建项目中的groupId, artifactId, 和 version的意思

文章目录 groupIdartifactIdversionname groupId 定义:groupId 是 Maven 项目坐标的第一个部分,它通常表示项目的组织或公司的域名反转写法。例如,如果你为公司 example.com 开发软件,groupId 可能是 com.example。作用:groupId 被用来组织和分组相关的 Maven artifacts,这样可以避免