【发布时间】:2018-01-08 23:12:25
【问题描述】:
我想在 Spring Boot 多模块应用程序中使用 Angular 4 作为客户端框架。 我的应用程序包含 3 个模块
- 域模块
- 服务模块
- web 模块(一个 Spring Boot 模块)
angular 4 根目录位于 web 模块中。
我可以启动 bootRun 以使用“ng build”命令执行应用程序(编译 angular typescript 文件并将结果文件复制到 springBoot 静态资源目录中) 这是你的工作(顺便感谢 Umesh Morsu 的出色教程https://www.youtube.com/watch?v=nHRA7cbL0vk)。
下面是我用来执行此操作的 gradle 脚本:
task buildClientDev(type: NpmTask, dependsOn: 'npmInstall') {
group = 'build'
description = 'Compile client side folder for development'
args = ['run','buildDev']
}
task buildClientWatch(type: NpmTask, dependsOn: 'npmInstall'){
group = 'application'
description = "Build and watches the client side assets for rebuilding"
args = ['run','buildWatch']
}
bootRun{
doFirst {
tasks.buildClientDev.execute()
}
}
这样做的问题是,当我修改 TypeScript 文件(生成 js 文件)时,我必须重新运行 bootRun。我希望这一代自动完成。所以我想打电话给tasks.buildClientWatch.execute(),它执行“ng build watch=true”。但是当我这样做时,springBoot 应用程序无法启动。
当我使用 doLast 而不是 doFirst 时,我的 Springboot 应用启动良好,但 doLast 中的 gradle 调用均未执行。
那么如何同时运行springBoot bootRun命令和ng build watch=true呢?
【问题讨论】:
-
“springBoot 应用程序无法启动” - 这是为什么呢?
标签: angular spring-boot gradle build watch