问题标签 [grails-2.2]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
4000 浏览

grails - BuildConfig.groovy Grails 2.2.3 中的自定义插件传递依赖解析

tl;博士版

我的自定义 grails 插件的依赖项没有被我安装插件的项目继承和解决。

  • 将最新版本的发布插件安装到您的插件(修复 jar 依赖项的问题)
  • 清除对您的 BuildConfig.groovy 文件中可能存在的插件的任何引用(修复插件依赖项的问题)
  • grails maven-install使插件在 mavenLocal() 源中可用

长版

因此,我一直在尝试创建一个自定义 grails 插件以供我的大学内部使用。

如果将插件放入 BuildConfig.groovy 文件的 plugins 闭包中,我真的很喜欢它不仅会自动安装插件,而且会自动安装在其 BuildConfig.groovy 文件中为插件定义的所有依赖项(或者,在打包之后,它的 dependencies.groovy文件)。

查看说明,我已经在存储库关闭中为我的项目设置了 BuildConfig.groovy 文件:

然后将其添加到插件闭包中:

这确实正确安装了插件,但它不能解决任何插件的依赖项或所需的插件。这是插件的 BuildConfig.groovy 文件中的三个主要闭包:

如果我使用 运行插件grails run-app,它可以很好地解决所有这些依赖项。只有当插件安装到项目中时,自动依赖解析才会失败。

我已经尝试使插件成为 maven 工件,并将其复制到我的本地存储库。在这些情况下,我flatDir从闭包中删除了该行repositories并将其替换为 mavenLocal()。同样,插件本身会安装,但指定的依赖项都不会安装。

我尝试将 BuildConfig.groovy 中的 legacyResolve 设置为 true,但这也无法安装 jars 或所需的插件(如 wslite)。

我什至尝试手动指定compile(":grails-my-plugin:0.1") {transitive: true},但它仍然无法解析插件。

在上述所有尝试之间,我卸载了我的插件,grails clean在项目上运行,删除了 ~/.grails/2.2.3/cached-installed-plugins/ 目录的内容,并在吟诵 Burt 的圣名时倒了酒Beckwith,但我仍然无法获得传递分辨率。

另一件值得注意的事情:我已经对项目运行了依赖关系报告。它在依赖项中列出了我的插件,但报告说插件本身没有依赖项。

我还运行了 refresh-dependencies myAppDeps.xml 以获得依赖关系报告。它不包含插件的任何依赖项,这些依赖项也不是 vanilla grails 项目的依赖项。

公共存储库中的 Grails 插件会自动解析其依赖项(例如,尝试将 spring-security-ldap 放入 BuildConfig.groovy 文件中,然后安装 spring-security-core)。传递分辨率根本不适用于本地插件吗?有什么方法可以让它工作,比如在 _Install.groovy 中添加一些东西?

更新

所以,我尝试了 dmahapatro 的建议。这确实有助于在项目中安装 myPlugin 所依赖的 jar;因此,项目编译并且依赖报告包含所需的 jar。但是,myPlugin 所依赖的插件仍然没有安装到我安装 myPlugin 的项目中。当我在成功编译后尝试运行应用程序时,我收到此错误:

进一步更新

所以,我决定尝试隔离问题。我创建了一个新插件 ( grails create-plugin transitiveDep) 和一个新项目 ( grails create-app horseradish)。我将 BuildConfig.groovy 的相关部分从我的工作项目中复制到每个项目中,将插件依赖项从 my-plugin 更改为 transitive-dep。

瞧,辣根成功安装了所有需要的依赖项(wslite、springSecurityCore)。它甚至询问我是否想安装旧版本的 jQuery。

所以,我的环境没有任何问题。我怀疑此时插件的配置有其他问题。它最初是用 Grails 2.0.1 编写的,然后升级到 2.2.3。我也尝试将它安装到一个新的应用程序中,就像我安装了我的 transitive-dep 插件一样,但它仍然无法解决插件依赖项。当我弄清楚问题出在哪里时,我会发布更新。

最终更新

因此,阻止插件安装的原因是 myPlugin 在 application.properties 文件BuildConfig.groovy 中引用了它们。如果我在打包之前删除了对它们的引用,则插件安装得很好。

我还注意到我的PluginGrailsPlugin.groovy 文件中仍然有旧的Grails 版本(2.0),以及似乎不再需要的dependsOn 映射。我删除/更改了这些行,但直到清除 application.properties 中的旧引用,事情才真正开始工作。

值得注意的是,在对 myPlugin 进行更改后,我还必须清除我的 ~/.grails/2.2.3、~/.grails/ivy-cache 文件夹和 ~/.m2/repository/org/grails/plugins/ 目录,或者我的项目仍会尝试安装旧版本。我厌倦了这样做,我制作了一个 shell 脚本来做到这一点:

0 投票
1 回答
1689 浏览

mongodb - 使用 MongoDB 在 Grails 中命名查询的列表方法中排序不区分大小写

有没有办法指定命名查询中的列表不区分大小写?我认为在 grails 2.2 之前这是默认设置,但使用 Grails 2.2.3 无法正常工作......

这是我的代码行,它调用命名查询并尝试以不区分大小写的方式列出排序。

如您所见,我尝试添加 ignoreCase:true 选项,但它不起作用。而且我无法在命名查询中添加排序,因为我在其他需要不同排序选项的地方使用它。

以防万一,这是命名查询

编辑:对不起,我忘了提到我正在使用 MongoDB,我认为这是造成问题的人

0 投票
5 回答
2717 浏览

grails - 未配置 javascript 提供程序

更新: 我已将此错误隔离到在此选择中注册 onchange 事件。如果我删除了 onchange,页面将无错误地呈现,否则我会收到No javascript provider错误。

由于各种原因,我想使用资源插件而不是 jQuery 插件来包含 jQuery。它大部分都在工作,但我有一个不会呈现的页面,而是发出错误No javascript provider is configured

我的 ApplicationResources.groovy 定义了 jquery:

我的 main.gsp 布局如下所示:

发出未配置提供程序错误的页面如下所示:

0 投票
1 回答
1275 浏览

spring - 没有这样的属性:org.codehaus.grails.INCLUDED_JS_LIBRARIES

要求

我正在尝试在基于功能测试阶段的自定义测试阶段运行我的 JavaScript 测试。基本上它需要:

  • 启动嵌入式Tomcat
  • 打开控制器
  • 检查执行测试的结果

我做了什么

首先,我根据这篇文章创建了我的自定义测试阶段。所以我的 _Events.groovy 看起来像

接下来,我决定使用PhantomJS打开我的页面并分析执行的测试。所以我在RunJavaScriptUiTests.groovy脚本中使用了它

我可以看到functionalTestPhasePreparation运行,因为这会正确启动我的应用程序。我还可以看到 phantomjs 命令在打印时是正确的:

但这给了我groovy.lang.MissingPropertyException

有关完整的 Stacktrace,请参见此处

有趣的是,如果我这样做

该脚本有效,我没有任何异常。

问题

为什么会抛出 MissingPropertyException?我查看了JavascriptLibraryFilters并没有找到原因。

编辑

关于 Tomcat

我正在使用 Grails 附带的嵌入式 Tomcat,但在 _Events.groovy 中启用压缩:

0 投票
1 回答
449 浏览

grails - flash.message 不在 grails 2.x 的屏幕上打印消息

我的功能是我有一个用户列表。当我点击任何用户编辑他的信息时,会弹出一个新窗口。我更改了一些值并单击保存。现在值已正确保存,但未显示“保存成功”消息。

我的控制器代码是

在 gsp 中我打印这样的消息

这里 Call 没有进入 g:if 条件,因此没有打印消息。这在 grails 1.3 中运行良好,但在 2.2 中失败。为什么呢?

0 投票
1 回答
135 浏览

grails - 如果在 grails 2.2.4 中调用私有方法后更改对象参数,则不会分配值

我有一个调用私有方法的方法。此方法返回模型。一旦它被返回,我改变一些对象值并渲染它。在 jsp 上,当我打印“消息”的值时,我没有得到该值。这是代码

私有方法

&普惠制

但是,如果我在返回之前在私有方法中为消息添加值,那么它的值将打印在 gsp 上。

这是在 gsp 中打印值的私有方法

这曾经在 grails 1.3.7 中运行良好,但为什么在 grails 2.2.4 中会发生这种情况

0 投票
0 回答
127 浏览

authentication - 如何在 Grails 中的身份验证控制器之外访问经过身份验证的用户?

我正在使用Authentication 2.0.1spring 安全插件来验证我的 web 服务。我通过 Authentication Service 成功登录并设置用户会话。我还在身份验证控制器中获得sessionUserisLoggedIn成功响应。但同样的事情我无法从其他控制器访问。请查看我的代码,除了身份验证控制器,我无法访问身份验证服务,请帮助。提前致谢。

0 投票
2 回答
314 浏览

javascript - When I use ckeditor toolbar, it adds html tags instead of adding desired effects while displaying

I am using ckeditor which was working fine when I used it with grails 1.3.7. Now I upadated my codebase to grails 2.2.4 & ckeditor is giving me some issue.

When I write someting & use toolbar to format it, I get output containing html tags. For e.g.

I select bold & write something 'This is a text' it produces output

Is there anything I should add in config to make it work?

0 投票
1 回答
887 浏览

grails - 在 Grails 中应用 Groovy 扩展会为 String#toBoolean() 产生 MissingMethodException

背景

Groovy 具有向现有类添加方法的功能,我发现了一些 有趣的方法。

然后我发现我需要自定义我的 Grails 引导程序来加载它们,所以我添加了:

我添加了我的 BuildConfig.groovy

问题

问题是现在我不能使用toBoolean()Groovy String 的方法:

groovy.lang.MissingMethodException:没有方法签名:java.lang.String.toBoolean() 适用于参数类型:() 值:[] 可能的解决方案:asBoolean()、asBoolean()、toFloat()、toDouble()

既然 groovy 已经注册了,为什么缺少这个方法呢?我正在使用 Grails 2.2.4。

编辑

在 groovy 2.0.8 控制台中测试,代码有效,所以可能与 Grails 相关。

0 投票
1 回答
284 浏览

grails - 为什么有两种方法可以为 grails 配置插件?

我使用的一个 grails 应用程序有两种方法来包含插件:

首先在 application.properties 文件中:

在 BuildConfig.groovy 文件中:

数据库迁移插件在应用程序资源中是 1.1 版,而在 BuildConfig 中是 1.3.6 版,这似乎令人困惑。

为什么有两种方法可以为 grails 配置插件?