我有grails应用程序使用插件来模块化应用程序。 app的结构如下:
在其中一个插件(比如pluginA)上,我有一个使用Spring Webflow的控制器(使用Spring Webflow 2.0.8.1)。
插件在pluginMain的BuildConfig.groovy中本地解析(grails.plugin.location.'pluginA'=“../pluginA” grails.plugin.location.'pluginB'=“../pluginB”)。
运行使用 run-app 的应用时,网络流使用的视图已恢复正常。
但是,当我从插件运行带有 run-war 控制器的app时,尝试从位置解析视图 pluginMain / WEB-INF / grails-app / views / controllerName / flowName / nameOfView .jsp,而不是来自 pluginA 所以我收到HTTP 404找不到错误。
我使用的是grails 2.3.7和java jdk 1.7。
请帮忙!
答案 0 :(得分:0)
它在战争情况下寻找的位置是解析页面和流量视图的标准位置。尝试使用内联插件(grails.plugin.location)创建war文件可能会遇到麻烦。
在开发插件功能时,内联插件支持非常好,但它有它的怪癖,特别是当你得到多个依赖插件时。在某些时候,你必须分解并开始发布你的插件。
尝试使用" maven-install"将插件发布到本地Maven存储库。命令。然后更改BuildConfig.groovy文件以引用已安装的插件版本。
我的正常工作流程是这样的:
使用BuildConfig.groovy中的内联插件定义开发新的插件功能,使用run-app和run-test进行测试,直到我开心。
发布插件的SNAPSHOT版本(即1.0.1-SNAPSHOT)并更新BuildConfig.groovy以指向快照并使用run-app和run-war进行测试,例如:
编译(":ark-kpi:1.0.1-SNAPSHOT")
如果您想与同事共享(publish-plugin),请将您的插件以发布形式发布到本地maven存储库(maven-install)或公共存储库(如本地运行的Artifactory)。
< / LI> 醇>有关设置存储库的详细信息,请阅读有关插件和配置的指南部分。