Vaadin 14 Spring Boot应用生产模式命令行运行缺失manifest文件问题问询
问题解决方案
你遇到的报错是Vaadin框架未生成前端打包清单文件导致的,按以下步骤排查解决:
1 校验pom.xml生产Profile配置
确保production profile中已经正确引入vaadin-maven-plugin,该插件是生成vaadin-flow-bundle-manifest.json的核心依赖,参考配置如下:
<profile> <id>production</id> <properties> <vaadin.productionMode>true</vaadin.productionMode> </properties> <build> <plugins> <plugin> <groupId>com.vaadin</groupId> <artifactId>vaadin-maven-plugin</artifactId> <version>${vaadin.version}</version> <executions> <execution> <goals> <goal>build-frontend</goal> </goals> <phase>process-classes</phase> </execution> </executions> </plugin> </plugins> </build> </profile>
确认配置无误后,优先使用jar包启动的方式运行项目,符合你用内置Tomcat jar包启动的需求:
- 执行构建命令:
mvn clean package -Pproduction - 构建完成后进入target目录,执行启动命令:
java -jar 你的项目打包后的文件名.jar
构建过程中注意控制台输出,若存在Node.js版本不兼容、前端依赖安装失败的报错,先解决对应报错再启动。
2 开发模式运行方案
如果不需要生产打包,仅要本地开发正常运行:
- 将
application.properties中的vaadin.productionMode设置为false - 无需激活production profile,直接执行
mvn spring-boot:run启动即可,开发模式下Vaadin会自动处理前端资源,无需提前生成manifest文件。
3 用Maven命令直接启动生产模式的修正方案
你当前使用的mvn clean && mvn package -Pproduction && mvn spring-boot:run -Pproduction逻辑存在问题,mvn spring-boot:run不会读取你之前打好的jar包,会重新编译源码且默认不执行前端构建,若要直接用该命令启动,调整为:mvn clean vaadin:build-frontend -Pproduction spring-boot:run -Pproduction
内容的提问来源于stack exchange,提问作者Stimpson Cat
相关产品推荐
相关产品推荐

