在 Spring Boot 项目中,当你修改了 pom.xml 里的 version 并使用 mvn clean package 打包时:

执行结果分析:

  1. clean 阶段:会清理 target 目录下的所有内容,包括之前版本的所有构建产物(jar/war 包、class 文件等)

  2. package 阶段:会根据新的 version 重新生成 jar 包,文件名会包含新的版本号

具体示例:

假设你的项目:

<!-- 修改前 -->
<version>1.0.0</version>

<!-- 修改后 -->
<version>1.0.1</version>

执行流程

  • mvn clean:删除 target 目录下的所有文件
  • mvn package:生成新的 jar 包,如 your-project-1.0.1.jar

重要说明:

  • 不会自动删除其他位置的旧版本 jar:Maven 只会清理当前项目的 target 目录
  • 本地仓库的旧版本:如果你之前通过 mvn install 安装到本地仓库(~/.m2/repository),旧版本 jar 仍然会保留在本地仓库中
  • 多模块项目clean 只会清理当前模块的 target 目录,不会清理依赖模块的构建产物

建议的最佳实践:

# 确保完全清理并重新构建
mvn clean package

# 如果需要同时更新本地仓库
mvn clean install

# 强制重新下载所有依赖并重新构建
mvn clean compile -U

所以,修改 version 后使用 mvn clean package 会生成新版本的 jar,并清理掉当前项目 target 目录下的旧构建文件,但不会影响本地仓库或其他位置的旧版本文件。

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐