升级插件无法从Grails 3.1.11升级到3.2.2

时间:2016-11-01 15:31:47

标签: grails grails-plugin

我正在开发一个Grails插件,其主要贡献是taglib。在Grails 3.1.11中它运行正常。我还有一个简单的Grails应用程序,仅用于测试插件。输入Grails 3.2.2。

将插件和应用程序迁移到3.2.2后,该插件没有生命迹象。应用启动时不再执行插件 doWithApplicationContext 闭包。 gsp:s找不到taglib。我通过使用Grails 3.2.2创建一个新的插件和应用程序来完成迁移,然后填写源代码。

对于这个含糊不清的问题感到抱歉,但我应该找出哪些字符串来找出问题所在?

编辑1:是的,我进行了完整性检查,让应用程序依赖于该插件的不存在版本并获得预期的冲突。所以并不是说插件与应用程序完全分离。

编辑2:在设置包grails.pluginsorg.grails.plugins上的DEBUG登录后,会出现一条警告消息。它来自org.grails.plugins.CorePluginFinder。它无法找到插件描述符(... Plugin.groovy)。我检查了插件jar,在一个以BOOT-INF为根的文件层次结构中找到了插件描述符类。显然,插件加载器没有查看该层次结构。我以为我看到了一个Grails bug,因为我不知道Boot重新打包。我在这里添加了一篇帖子,但在得到Graeme的答案后,我删除了帖子,因为它减少了注意力。

1 个答案:

答案 0 :(得分:4)

您所看到的是,如果您在插件上运行extend,则运行gradle assemble任务,将插件JAR重新打包为可运行的JAR,这不是您在计划时所需的使用应用程序中的插件。

如果您只是运行bootRepackagegradle publishgradle publishToMavenLocal,那么您将获得尚未通过Boot重新打包的JAR文件。据我所知,这不是Grails 3.1的改变。

如果您从未计划将插件用作实际应用程序或可运行的JAR文件,也可以在插件gradle jar中一起禁用Boot重新打包:

build.gradle