You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 06:18:04