将改变静态时重新加载弹簧



我有一个Gradle+Spring Boot+Angular 9的项目。前端源位于路径下:myProject>src>main>webapp。为了编译Angular,我使用ng-build,输出将在resources>公开,以便我可以使用/gradlew bootRun发球。

问题是我总是运行两个命令来重新加载更改:

  1. ng build
  2. ./gradlew bootRun

是否有任何方法可以使用gradle实现自动化,并获得类似于ng serve的行为,即每次更改源时都会重新启动服务器?

我已经编写了一个自定义的gradle任务,但我不确定如何将其与spring-devtools链接,以便在webapp/中的文件更改时自动重新启动服务器。

tasks.register("bootRunAll") {
project.exec {
commandLine("cmd", "/c/myProject", "ng", "build")
}
dependsOn(tasks["bootRun"])
}

对于您的开发,您可以使用Spring devTool。使用Gradle,将其添加到您的项目中:

dependencies {
developmentOnly 'org.springframework.boot:spring-boot-devtools'
...
}

然后,您可能需要配置IDE,因为其中一些IDE不允许刷新.class文件。例如,使用IntelliJ,您必须:

  1. 访问注册表并将compiler.automake.allow.when.app.running设置为true
  2. 启用Settings > Build, Execution, Deployment > Compile中的Build project Automatically

但是如果你使用不同的IDE,我不知道所有的步骤。

最新更新