Spring Boot 2.5 .war打包Vaadin静态资源
Spring Boot 2.5 .war packaging with Vaadin static resources
我有一个 Vaadin 8 应用程序(在可预见的将来无法升级 Vaadin)正在从 Spring Boot 1.5.x 升级到 Spring Boot 2.5.x。我正在使用可自行执行的 .war 包装。
问题是生成的 .war 文件不包含已编译的主题 .css 文件 (styles.css
),因此应用程序无法正确呈现。
在 .war 中,/VAADIN/themes/[themename]
文件夹仅包含这些文件:
虽然 Spring Boot 1.5.x 版本的同一文件夹包含这些:
有趣的是,对于Spring Boot 2.5.x,build时生成的.war后缀为-plain.war
的文件(不含依赖)进程,确实有 .css
和 .css.gz
文件。所以似乎是在 Spring Boot 的重新打包过程中,文件从最终的 .war.
中删除了
升级到 Spring Boot 2.5.x 后,任务显然没有按正确的顺序执行。
我已经通过在 gradle 构建脚本的 bootWar { }
块中使用 dependsOn
来修复它:
bootWar {
launchScript()
...
dependsOn(vaadinCompile, vaadinThemeCompile)
}
我有一个 Vaadin 8 应用程序(在可预见的将来无法升级 Vaadin)正在从 Spring Boot 1.5.x 升级到 Spring Boot 2.5.x。我正在使用可自行执行的 .war 包装。
问题是生成的 .war 文件不包含已编译的主题 .css 文件 (styles.css
),因此应用程序无法正确呈现。
在 .war 中,/VAADIN/themes/[themename]
文件夹仅包含这些文件:
虽然 Spring Boot 1.5.x 版本的同一文件夹包含这些:
有趣的是,对于Spring Boot 2.5.x,build时生成的.war后缀为-plain.war
的文件(不含依赖)进程,确实有 .css
和 .css.gz
文件。所以似乎是在 Spring Boot 的重新打包过程中,文件从最终的 .war.
升级到 Spring Boot 2.5.x 后,任务显然没有按正确的顺序执行。
我已经通过在 gradle 构建脚本的 bootWar { }
块中使用 dependsOn
来修复它:
bootWar {
launchScript()
...
dependsOn(vaadinCompile, vaadinThemeCompile)
}