У меня есть веб-приложение со Spring Boot и сборкой Gradle.Я генерирую файл CSS из файлов SCSS в каталоге сборки и добавляю этот файл в созданный файл WAR.Файл добавляется в файл WAR, но отсутствует, если я запускаю встроенный веб-сервер из IntelliJ IDEA.
apply plugin: "war"
apply plugin: "org.fabric3.gradle.fabric3-sass"
...
// Generate the CSS from the SCSS files
sass {
inputFilePath = "src/main/webapp/resources/scss/my.scss"
includePaths = "src/main/webapp/resources/scss"
outputFilePath = "build/generated/src/main/webapp/resources/css/my.css"
}
war {
dependsOn compileSass
...
// Add the CSS to the WAR file
from "build/generated/src/main/webapp/"
}
// I tried to add the CSS to IDEA but if I run bootRun the CSS is not provided by the embedded server
// the WAR file is build correctly and works fine.
idea.module {
sourceDirs += file('build/generated')
resourceDirs += file('build/generated')
generatedSourceDirs += file('build/generated')
}
Я ожидал, что CSS будет предоставлен встроенным сервером после добавления его в WARfile.
Вот часть вывода unzip -l my.war
:
Archive: my.war
Length Date Time Name
--------- ---------- ----- ----
0 2019-06-24 08:24 META-INF/
149 2019-06-24 08:24 META-INF/MANIFEST.MF
0 2019-06-24 08:24 WEB-INF/
...
0 2019-06-24 07:41 resources/css/
31952 2019-06-21 14:11 resources/css/my.css
0 2019-06-24 07:41 resources/js/
0 2019-06-21 14:11 resources/js/my.js
CSS находится там, где он должен быть, и прекрасно работает при его развертывании, но если я хочуотладить приложение в моей IDE и запустить его с gradle bootRun
, CSS не предоставляется встроенным сервером Spring.Работает только файл WAR.