groovy 如何调试grails命令

axr492tv  于 2022-11-01  发布在  其他
关注(0)|答案(5)|浏览(205)

当我运行dbm-generate-changelog时,抛出异常。我想调试这个脚本,但我不知道怎么做。我试着把断点放在脚本文件_DatabaseMigrationCommon.groovy中,然后在eclipse中创建新的"debug configuraion"命令。当我运行这个命令时,没有断点暂停执行。我也试着用--debug参数。

setup:
Grails: 2.3.3
GGTS: 3.4
Eclipse: 4.3
ctehm74n

ctehm74n1#

请执行以下操作:
1.使用-debug选项启动Grails

grails -debug run-app

1.在Eclipse中创建远程Java应用程序调试配置,并将端口设置为5005
1.享受断点和逐步调试

brgchamk

brgchamk2#

尝试使用dbm-generate-changelog -verbose -stacktrace,它可以帮助您查找故障原因。

ygya80vv

ygya80vv3#

我正在使用GGTS工具。打开它。转到“调试为”(错误图标)。
在列表中选择“grails”,然后选择“new configuration”(空白纸张图标)。
在下一个窗口中,在“项目字段”中选择您的Grail项目。
在grails命令字段中写入“run-app”。单击“Apply”,然后单击“Debug”。
那是。

ozxc1zmp

ozxc1zmp4#

在Grails 4中,您必须使用debug-jvm参数,即grails run-app -debug-jvm
来源:https://docs.grails.org/4.0.10/ref/Command%20Line/run-app.html

vecaoik1

vecaoik15#

这并没有回答您关于“如何调试它”的问题,但是dbmInit目标中有一个bug。
dbmInit目标依赖于bootsrap和loadApp,然后手动调用configureApp。这将引导系统两次,如果使用相同的名称重新创建一些bean(quartz scheduler和grails_cache),它们将变得疯狂。
将前几行更改为

target(dbmInit: 'General initialization, also creates a Liquibase instance') {
    //  depends(classpath, checkVersion, configureProxy, enableExpandoMetaClass, compile, bootstrap, loadApp)
        depends(classpath, checkVersion, configureProxy, enableExpandoMetaClass, compile, bootstrapOnce)

    //  configureApp()

    try {....

基本上,用对bootstrapOnce的调用来替换bootstrap、ladApp和configureApp()可能会为您清理(好吧,9年前,所以已经清理了)一些东西。

相关问题