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)
}