A tarefa bootRun do plugin Spring Boot Gradle não reconhece quando arquivos estáticos são gerados por Yeoman e atualizados com grunhido
-
21-12-2019 - |
Pergunta
Eu tenho um aplicativo Backbone gerado com Yeoman.Usando o plug-in Spring Boot Gradle junto com a tarefa bootRun para executar o aplicativo, quando faço alterações em minha fonte JS e executo o Grunt para recompilar/minificar minha fonte no diretório dist, essas alterações não são refletidas na tarefa bootRun em execução no momento .
construir.gradle
buildscript {
repositories {
maven { url "http://repo.spring.io/snapshot" }
maven { url "http://repo.spring.io/milestone" }
mavenLocal()
}
dependencies {
classpath "org.springframework.boot:spring-boot-gradle-plugin:0.5.0.M7"
}
}
apply plugin: "java"
apply plugin: "idea"
apply plugin: "spring-boot"
apply plugin: "war"
war {
baseName = "mis-support-client"
version = "1.0.0-SNAPSHOT"
includes = ["dist/**"]
}
repositories {
mavenCentral()
maven { url "http://repo.spring.io/libs-snapshot" }
}
dependencies {
testCompile "junit:junit:4.11"
compile ("org.springframework.boot:spring-boot-starter-web:0.5.0.M7") {
exclude module: "spring-boot-starter-tomcat"
}
compile "org.springframework.boot:spring-boot-starter-jetty:0.5.0.M7"
compile "org.springframework.boot:spring-boot-starter-security:0.5.0.M7"
compile "org.springframework.boot:spring-boot-starter-websocket:0.5.0.M7"
compile "javax.inject:javax.inject:1"
compile "org.codehaus.jackson:jackson-mapper-asl:1.9.12"
compile "org.apache.httpcomponents:httpclient:4.3.1"
compile "commons-io:commons-io:2.4"
}
task wrapper (type: Wrapper) {
gradleVersion = "1.8"
}
Aqui estão meus manipuladores de recursos do cliente para mapear o diretório “dist”.
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/bower_components/**", "/scripts/**", "/styles/**", "/fonts/**", "/font/**")
.addResourceLocations("/dist/bower_components/", "/dist/scripts/", "/dist/styles/", "/dist/bower_components/bootstrap/fonts/", "/dist/bower_components/font-awesome/font/")
.setCachePeriod(315569126);
}
Solução
Coloquei seu aplicativo em execução e verifiquei que os recursos servidos por src/main/resources
pode ser recarregado, mas até hoje só se eu usar o Maven (aqui está um questão sobre isso).A questão do github está bem para mim se você quiser discutir mais.
Outras dicas
Criei um plugin Yeoman que faz exatamente a mesma coisa, mas com Maven.
Temos um backend Spring Boot, construído com Maven, que funciona muito bem com um frontend AngularJS, construído com Grunt.
Você pode encontrar este gerador Yeoman aqui: https://github.com/jhipster/generator-jhipster