是否可以在grails框架之外使用grails插件?
依赖于Grails本身的插件显然没有资格,但假设插件只依赖于非grails库,有没有办法在独立的groovy或Java应用程序中使用打包的插件?
我们在Grails插件中有很多功能,我们正在考虑将springboot用于独立的常规应用程序,因此重用这些插件中的功能非常重要。我知道Grails 3正在转向springboot,但我们并没有屏住呼吸。
打包的Grails插件似乎只包含groovy源文件,因此我怀疑这适用于基于groovy的项目,但纯Java项目更难实现。
答案 0 :(得分:1)
我猜这个问题的答案“可能不是”,因为你的要求指明的东西不应该存在,但可能。如果一个插件是插件,如果它不需要一些Grails库,进程等等,如果插件只是代码,那么它应该只是一个jar。
也就是说,也许只有一些Groovy类的插件。在这种情况下,只要你还设法将它们的依赖项添加到你的项目中,那么获取插件的代码并将其转换为编译成jar而不是那么困难,然后依赖于那个jar(及其你项目中的依赖项。
要小心,因为许多插件也严重依赖于Grails的Spring依赖注入。当您计划使用Spring Boot时,在项目中重新创建这个应该不会太困难,因为插件描述符中的doWithSpring块应该让您很好地了解所需的bean。您还应该注意Grails-convention自动装配。如果插件有一个名为fileService的成员的控制器或服务,那么你需要确保控制器在实例化时注入了一个fileService,就像Grails那样。
最后,您在其中找到相关类的插件中的目录也很重要。 Grails以不同的方式处理和加载来自不同目录的类(想想过滤器,事件,作业等),您将不再自动获取这些类。当进入非Grails项目时,其中包含其中一些的插件将需要特殊处理。
因此,在不知道您尝试使用哪些插件的情况下,很难说您想要的是否可能。我仍然认为人们使用的大多数插件实际上都是需要一些类似Grails的环境。这可能是Grails,或者你设置的类似Boot的功能(祝你好运!)