spring bootRun 和 Angular buildWatch 使用 Gradle
spring bootRun and Angular buildWatch using Gradle
我想在 spring 引导多模块应用程序中使用 angular 4 作为客户端框架。
我的应用程序包含 3 个模块
- 域模块
- 服务模块
- web 模块(一个 spring 引导模块)
angular4根目录在web模块中。
我可以使用“ng build”命令启动 bootRun 来执行应用程序(编译 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
”。但是当我这样做时 spring 启动应用程序无法启动。
当我使用 doLast
而不是 doFirst
时,我的 Springboot 应用程序启动良好,但 doLast 中的 gradle 调用均未执行。
那么运行如何才能同时spring启动bootRun命令和执行ng build watch=true
呢?
我建议直接使用 npm 而不要 Gradle(因为我这样做没有任何问题)。大多数 IDE 也以组合构建/启动组的方式支持这一点。
在使用 angular 开发应用程序 3 年后,我认为在这种情况下最好的做法是将前端与后端完全分开。
所以我可以为我的 angular 前端应用程序创建一个 npm 或 gradle 项目。
对于后端,我可以根据需要创建微服务和模块。
我认为这是现在最好的模式。
我想在 spring 引导多模块应用程序中使用 angular 4 作为客户端框架。 我的应用程序包含 3 个模块
- 域模块
- 服务模块
- web 模块(一个 spring 引导模块)
angular4根目录在web模块中。
我可以使用“ng build”命令启动 bootRun 来执行应用程序(编译 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
”。但是当我这样做时 spring 启动应用程序无法启动。
当我使用 doLast
而不是 doFirst
时,我的 Springboot 应用程序启动良好,但 doLast 中的 gradle 调用均未执行。
那么运行如何才能同时spring启动bootRun命令和执行ng build watch=true
呢?
我建议直接使用 npm 而不要 Gradle(因为我这样做没有任何问题)。大多数 IDE 也以组合构建/启动组的方式支持这一点。
在使用 angular 开发应用程序 3 年后,我认为在这种情况下最好的做法是将前端与后端完全分开。
所以我可以为我的 angular 前端应用程序创建一个 npm 或 gradle 项目。 对于后端,我可以根据需要创建微服务和模块。 我认为这是现在最好的模式。