问题标签 [grails3]

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 投票
1 回答
1367 浏览

jenkins - 当我尝试使用 gradle-release 插件构建时,为什么 Jenkins 会挂起?

我在我的 Grails 项目上设置了发布插件,并在我的本地主机上成功运行了它。

当我尝试在 Jenkins 中设置相同的构建时,构建会无限期地挂起。挂起之前输出中的最后一件事是checkCommitNeeded步骤。

我能做些什么来弄清楚出了什么问题?

如插件文档中所述,我已经在switch-Prelease.useAutomaticVersion=true中设置了两个版本参数。

更新

在 Researchgate Gitter 上,Christian Gonzalez 提到 Jenkins 正在检测由发布插件引起的另一个提交,并让自己陷入循环。对于 Git,可以添加一个额外的行为来忽略插件提交的更改。但是,我的项目使用的是 SVN。

更新

下面是添加 -d 的输出片段

11:12:48.907 [DEBUG] [org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter] Executing actions for task ':checkCommitNeeded'. 11:12:48.908 [INFO] [org.gradle.api.Project] Running [svn, status] in [/var/lib/jenkins/jobs/MyTeam/jobs/MyProject/jobs/MyProject-release/workspace] 11:12:48.924 [INFO] [org.gradle.api.Project] Running [svn, status] produced output: [] 11:12:48.926 [DEBUG] [org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter] Finished executing task ':checkCommitNeeded' 11:12:48.926 [INFO] [org.gradle.execution.taskgraph.AbstractTaskPlanExecutor] :checkCommitNeeded (Thread[Daemon worker,5,main]) completed. Took 0.02 secs. 11:12:48.926 [DEBUG] [org.gradle.internal.operations.DefaultBuildOperationWorkerRegistry] Worker root.3 completed (0 in use) 11:12:48.926 [DEBUG] [org.gradle.internal.operations.DefaultBuildOperationWorkerRegistry] Worker root.4 started (1 in use). 11:12:48.926 [INFO] [org.gradle.execution.taskgraph.AbstractTaskPlanExecutor] :checkUpdateNeeded (Thread[Daemon worker,5,main]) started. 11:12:48.927 [LIFECYCLE] [class org.gradle.internal.buildevents.TaskExecutionLogger] :myproject:checkUpdateNeeded 11:12:48.927 [DEBUG] [org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter] Starting to execute task ':checkUpdateNeeded' 11:12:48.927 [DEBUG] [org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter] Determining if task ':checkUpdateNeeded' is up-to-date 11:12:48.927 [INFO] [org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter] Executing task ':checkUpdateNeeded' (up-to-date check took 0.0 secs) due to: Task has not declared any outputs. 11:12:48.927 [DEBUG] [org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter] Executing actions for task ':checkUpdateNeeded'. 11:12:48.928 [INFO] [org.gradle.api.Project] Running [svn, status, -q, -u] in [/var/lib/jenkins/jobs/MyTeam/jobs/MyProject/jobs/MyProject-release/workspace] 11:12:51.477 [DEBUG] [org.gradle.launcher.daemon.server.Daemon] DaemonExpirationPeriodicCheck running 11:12:51.479 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Waiting to acquire shared lock on daemon addresses registry. 11:12:51.480 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Lock acquired. 11:12:51.481 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Releasing lock on daemon addresses registry. 11:13:01.477 [DEBUG] [org.gradle.launcher.daemon.server.Daemon] DaemonExpirationPeriodicCheck running 11:13:01.477 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Waiting to acquire shared lock on daemon addresses registry. 11:13:01.478 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Lock acquired. 11:13:01.480 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Releasing lock on daemon addresses registry. 11:13:11.477 [DEBUG] [org.gradle.launcher.daemon.server.Daemon] DaemonExpirationPeriodicCheck running 11:13:11.477 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Waiting to acquire shared lock on daemon addresses registry. 11:13:11.477 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Lock acquired. 11:13:11.479 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Releasing lock on daemon addresses registry. ...

最后 4 行一遍又一遍地重复。

0 投票
1 回答
485 浏览

grails - 无法在 Heroku 上部署我的 Grails 3 应用程序

我正在尝试在 Heroku 上部署我的 Grails 3 应用程序。

我已经参考了这个博客,并遵循了每一步,但是当我尝试运行git push heroku master命令时,会产生以下输出。

因此,根据输出,我参考了 Heroku 提供的这篇文章并进行了一些更改。现在,每当我尝试运行该命令./gradlew stage时,一切正常,但是当我尝试使用heroku local web以下输出在本地运行 heroku 应用程序时。

这是我的 Procfile:

这是我的build.gradle

我正在使用 Grails 3.1.10。如果您已经在 Heroku 上成功部署了 Grails 3 应用程序,那么一步一步的方法将是无价的。

0 投票
1 回答
944 浏览

angularjs - Grails 3 src/main/webapp 加载 app.js 文件

所以我试图让一个简单的 Grails 3 和 Angular 应用程序正常工作。在本地启动后,我希望我的app.js文件被加载,然后加载我的index.html.

我不完全确定它是如何index/main gsps工作的,但我的理解是,使用asset-pipeline,它应该直接指向我的app.js下面src/main/webapp/js$routeProvider处理其余的。但它永远不会重定向到我的app.js. 它似乎仍在搜索文件夹中的grails-app/assets文件。

这是我的index.gsp

main.gsp

这是我context-pathapplication.yml

app.js的位于src/main/webapp/js. 这是 Grails 3 中的替换目录webapp。所以我将我的 js、html 和 css 文件放在那里。

App.js

任何想法我做错了什么?

0 投票
1 回答
407 浏览

intellij-idea - 无法在 Grails 3 中创建初始连接池

我有一个带有 Intellij IDEA 2017.1.1 的 grails 3.2.7 应用程序。但问题是我无法为 MySql 数据库(开发环境)创建连接池。

这是我的 application.yml

这是我的 build.gradle

我是 grails 3 的新手,所以有人可以帮我解决这个问题吗?

0 投票
1 回答
67 浏览

grails - 从 gsp 访问 Grails Domain 类上的静态映射内容

给定一个基本领域类

如何在 GSP 页面或控制器中访问该静态映射块中的值?

谢谢!

0 投票
1 回答
304 浏览

grails3 - Grails 升级到 3 后的预热时间

将 grails 应用程序(使用多个内联插件、> 130 个控制器、> 140 个服务、> 180 个域类、> 600 个 GSP)从 2.5.4 升级到 3.2.8 后:

  • grails run-app更新前:2:10 分钟。
  • grails run-app更新后:5:50 分钟。

大多数时候 grails 3.2.8 run-app 挂在“:boot-run”。特别是在 spring 安全核心初始化后(启动后大约 2 分钟),它会挂起大约 4 分钟。此外,与 grails 2.5.4 相比,CPU 使用率非常低。

该测试在不同的机器上重复进行,并面临相似的结果(Mac、Linux 和 Windows 机器)。

这种行为的原因是什么?

0 投票
1 回答
386 浏览

tomcat - gradle war vs gradle assemble(Grails 3.2.6 和 Sec 插件 3.1.2)

我很难弄清楚这一点。我有一个应用程序在 intellij 中运行良好,并且作为独立战争(使用创建gradlew assemble)。但是,当我尝试在 tomcat 8.5 中部署这场战争(使用gradlew assembleprovided在 build.gradle 文件中设置的 tomcat 启动器创建)时,我遇到了这个异常。但是,如果我使用生成战争,gradlew war那么我看不到这个异常,并且 tomcat 部署得很好。但在那种情况下,我的应用程序会在前端出现与 gsps 和 g: 命名空间相关的各种垃圾错误。

我真的无法理解为什么会这样?这是我的application.groovy文件(安全相关配置)

有人可以帮我理解发生了什么吗?

0 投票
1 回答
24 浏览

spock - 如何使用Spock测试是否从Grails 3中的另一个实例方法中调用实例方法

使用Grails 3.2.8Spock框架进行测试,给定以下控制器类:

如何测试doSomething()方法以确保someOtherMethod()只调用一次?

这是我失败的尝试:

错误信息:

注意:已省略导入以关注手头的问题

0 投票
2 回答
136 浏览

asynchronous - 在 grails PromiseMap 中,如何阻塞当前线程,让所有并发任务完成并返回结果?

我需要异步获取猫、狗和老鼠,然后进行一些后期处理。这是我正在做的事情:

我面临的问题是,列表中的项目顺序results不固定,即在一个执行结果中可以是[cats, dogs, mice],在另一个执行中,结果可以是[dogs, mice, cats]

这意味着访问cats我需要显式检查元素的类型results,并且类似地检查dogsmice这使我的代码看起来很糟糕。

在这里浏览文档后,我发现PromiseMapAPI 可以帮助我,因为它提供了一种通过键值对访问结果的漂亮方式。这是它提供的:

虽然PromiseMap有一个onComplete方法,但它不会让当前线程等待所有的承诺完成。

使用PromiseMap,我怎样才能阻塞当前线程,直到所有的承诺都完成?

0 投票
1 回答
731 浏览

angularjs - Grails 3对自定义API的Restful调用不起作用

尝试对特殊的 oracle pl/sql 验证包进行自定义调用,该包执行自定义域级别验证器之外的操作,但不会触发“firemyvalidations”。你可以看到我尝试过的一些东西被注释掉了。谁能发现我的问题?我正在使用带有 angularjs 休息配置文件的 grails 3.2.6。

urlmappings.groovy

FytrnltController.groovy

通过 Postman 访问端点返回 404 错误。

Grails 生成以下内容: