1

我有一个 Grails 项目,其中包括一个单独的 Gradle 项目,其中包含许多项目之间共享的实用 Java/Groovy 类。我正在使用多项目构建,以便我可以同时开发两个项目。

包含项目中的实用程序类不是热交换/热重载/自动重载/弹簧加载(我想这个概念有很多同义词)。这意味着每次我对包含项目中的一个实用程序类进行更改时,我都必须重新启动 Grails 应用程序。

有谁知道如何让子项目使用 Grails 使用的热交换功能?从这条评论中可以看出,Grails 使用 Spring Boot 的弹簧加载功能来做到这一点:https ://github.com/spring-projects/spring-boot/issues/43#issuecomment-24723710

我什至尝试按照本教程中关于使用弹簧加载功能的建议设置子项目:http: //mrhaki.blogspot.com/2015/09/spring-sweets-reload-classes-spring.html。但是当我运行时gradle -t classes,我最终得到了这个输出:

Continuous build is an incubating feature.
:compileJava UP-TO-DATE
:compileGroovy FAILED

FAILURE: Build failed with an exception.

* What went wrong:
java.lang.UnsupportedOperationException (no error message)

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

BUILD FAILED

Total time: 1.832 secs

Waiting for changes to input files of tasks... (ctrl-d then enter to exit)

构建失败,但进程仍在运行。所以我尝试启动 Grails 应用程序并检查实用程序类是否正在热交换,但它们不是。我希望有一个解决方案不需要gradle -t classes在启动 Grails 应用程序之前启动单独的进程,但无论哪种方式,如果有人有任何想法,我很乐意听到他们的意见。

4

0 回答 0