Maven打包war包未携带版本号,如何生成带版本号的war文件?
问题原因
你遇到的这个现象是Spring Boot父POM的默认配置导致的:spring-boot-starter-parent默认将构建输出的最终文件名设置为仅包含项目artifactId,不会自动携带版本号,所以即使你配置了version节点,打包后的war也不会追加版本信息。
解决方案
你可以选以下任意一种方式配置即可:
方案1:全局指定构建输出文件名
在你的pom.xml中添加build节点的finalName配置:
<project> <!-- 你原有project下的其他配置:groupId、artifactId、version、parent等 --> <build> <finalName>${project.artifactId}-${project.version}</finalName> <!-- 保留你原有build下的其他配置,比如plugins、resources等 --> </build> </project>
配置完成后执行mvn clean package,就能在target目录下得到myproject-1.0.0-SNAPSHOT.war。
方案2:仅修改Spring Boot打包插件的输出文件名
如果你不想修改全局的构建文件名配置,只需要调整Spring Boot repackage阶段输出的war包名,可以给spring-boot-maven-plugin添加单独配置:
<build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <finalName>${project.artifactId}-${project.version}</finalName> </configuration> <!-- 保留你原有插件下的其他配置,比如executions等 --> </plugin> <!-- 其他原有插件配置 --> </plugins> </build>
内容的提问来源于stack exchange,提问作者Toni26
相关产品推荐
相关产品推荐

