【发布时间】:2017-03-14 18:47:59
【问题描述】:
我正在开发一个 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.plugins 和 org.grails.plugins 上设置 DEBUG 日志记录后,出现警告消息。它来自org.grails.plugins.CorePluginFinder。它找不到插件描述符(...Plugin.groovy)。我检查了插件 jar,在以 BOOT-INF 为根的文件层次结构中找到了插件描述符类。显然插件加载器并没有考虑到那个层次结构。我以为我看到了 Grails 错误,因为我不知道 Boot 重新打包。我在此处添加了一个帖子,但在得到 Graeme 的回答后,我删除了该帖子,因为它分散了注意力。
【问题讨论】:
-
如果不知道事情是如何编写的,真的没有很好的方法来解决问题。有很多事情可能是错误的。
-
我将首先创建一个全新的 3.2.2 插件并将其构建文件复制到升级后的项目中,以确保所有依赖项在那里同步。
-
我也会否决这样一个愚蠢的问题:) Grails 文档中非常需要的是用于设置更详细日志级别的关键内部包列表。在 Grails 2 中,日志配置默认带有这样的列表。在这种情况下,应用程序会毫无怨言地启动,但仍然无法正常工作。一个更好的问题是,给我一些日志记录设置以解决问题。我陷入了困境。
-
给任何人点赞?即使问题很愚蠢,答案也很有价值。在 Grails 指南中很难找到引导重新打包,这是 Spring Boot 的事情。
-
"Grails 文档中非常需要的是用于设置更详细日志级别的关键内部包的列表。在 Grails 2 中,日志配置默认带有这样的列表。在这种情况下,应用程序开始时没有抱怨,但仍然不起作用。” - 随时在github.com/grails/grails-doc/issues 提出请求。
标签: grails grails-plugin