💡 一则也许对你有用的小广告 🏆

欢迎飞飞程序员   ,你将获得:专属的实战项目(已更新的所有会员标识的项目都能学习) / 1v1 提问 / Java 学习路线 / PHP 学习路线 / 学习打卡 / 社群讨论

  • 正在进行中的项目:《FFBlog知识付费博客项目》 正在持续更新中,基于 Spring Boot 3.x + JDK 21...,点击查看 ;
  • 《从零开发:FFBlog知识付费博客项目(全栈开发)》 演示链接: https://ffblog.ffcxy.com/  ;

截止目前, 飞飞  正在疯狂爆肝实战项目,后续还会上新更多项目,目标是将所学知识开发成项目并且分享给大家,如知识付费系统, Ai系统, CMS系统,在线商城系统,等等 ,欢迎点击围观

mvn clean compile -DskipTests 是 Maven 构建命令的常见组合,用于清理项目并编译源代码(跳过测试)。以下是详细解析:


1. 命令分解

mvn Maven 命令行工具

clean 清理目标目录(默认删除 target/ 文件夹)

compile 编译主代码(生成 .class 文件到 target/classes/

-DskipTests 跳过测试代码的编译和执行


2. 执行流程

  1. clean 阶段

    • 删除 target/ 目录(包括之前编译的类文件、打包的 JAR 等)。
    • 确保从干净状态重新构建。
  2. compile 阶段

    • 编译 src/main/java/ 下的 Java 源代码。
    • 生成 .class 文件到 target/classes/
    • 不处理测试代码src/test/java/)因为跳过了测试。

3. -DskipTests 的作用

-DskipTests

跳过测试代码的编译和执行,但测试代码仍会被编译(生成 target/test-classes/)。

-Dmaven.test.skip=true

完全跳过测试(不编译也不执行测试代码)。

使用场景

  • 快速验证主代码是否能编译通过。
  • 避免耗时的测试(如集成测试)。

    • *

4. 常见问题

Q1: 为什么用了 -DskipTeststarget/test-classes/ 仍存在?

  • -DskipTests 仅跳过测试执行,测试代码仍会被编译。若需完全跳过,改用:

    mvn clean compile -Dmaven.test.skip=true
    

Q2: 如何仅编译某个模块?

  • 使用 -pl 指定模块:

    mvn clean compile -pl module-name -DskipTests
    

Q3: 编译失败如何排查?

  • 检查错误日志(通常是语法错误或依赖缺失)。
  • 尝试单独编译:

    mvn compile -DskipTests
    

5. 扩展命令

mvn clean install -DskipTests

清理 + 编译 + 打包(跳过测试)

mvn test

仅运行测试

mvn package

编译 + 打包(不清理)


总结

  • 核心作用:快速清理并编译主代码,跳过测试。

  • 适用场景:开发阶段快速验证代码或修复编译错误。

  • 推荐组合

    # 完全跳过测试(不编译也不执行)
    mvn clean compile -Dmaven.test.skip=true
        
    # 仅跳过测试执行(测试代码仍编译)
    mvn clean compile -DskipTests
    
上一篇 高效的管理 Java 项目的构建命令mvn的用法
下一篇 详细解释一下 Mapper 和 DO 的关系

全部评论(0)

头像
😃 😁 😅 😂 😍 😜 😝 🤑 🥵 🥰 😙 😎 😵 😭 😱 😖 🥳 👽 🙈 🤡 😤 💣 💯 💢 ❤️ 👍 👏 👋 👌 🤏 🙏
还没有任何评论哟~