Grails2.4重新加载和调试don';我不能同时工作

Grails2.4重新加载和调试don';我不能同时工作,grails,intellij-idea,Grails,Intellij Idea,我尝试使用以下方法调试spock测试,该方法在Grails 2.3中使用,但在2.4.4中不再使用: 在终端中使用:grailsdebug-reloading-Dvar=blah启动grails 在Intellij中启动远程调试器 我可以从grails控制台运行测试、调试它们、修改服务并自动重新加载它们,这让我感到非常高兴 自从Grails2.4以来,grails调试脚本就消失了,取而代之的是grails-debug。但我发现,-debug只在它是第一个参数时有效,然后它忽略了-reloadin

我尝试使用以下方法调试spock测试,该方法在Grails 2.3中使用,但在2.4.4中不再使用:

  • 在终端中使用:grailsdebug-reloading-Dvar=blah启动grails
  • 在Intellij中启动远程调试器
  • 我可以从grails控制台运行测试、调试它们、修改服务并自动重新加载它们,这让我感到非常高兴
  • 自从Grails2.4以来,grails调试脚本就消失了,取而代之的是grails-debug。但我发现,-debug只在它是第一个参数时有效,然后它忽略了-reloading参数。当对测试本身的更改被重新加载时,对测试使用的服务的更改不会被重新加载。 因此,我可以不重新加载就进行调试。如果-reloading是第一个参数,那么重新加载服务是可行的,但是我不能再调试了。 以上所有操作都使用非分叉执行

    forked执行的另一个复杂之处是,我需要将-Dvar=blah传递给我的应用程序,而forked exec似乎没有这样做的机制。因此,我通过完全注释BuildConfig.groovy中的部分禁用了forked exec:

    grails.reload.enabled = true
    //forkConfig = [maxMemory: 1024, minMemory: 64, debug: true, maxPerm: 256]
    //grails.project.fork = [
    //        test: forkConfig, // configure settings for the test-app JVM
    //        run: forkConfig, // configure settings for the run-app JVM
    //        war: forkConfig, // configure settings for the run-war JVM
    //        console: forkConfig // configure settings for the Swing console JVM
    //]
    
    并尝试:

    grails.reload.enabled = true
    forkConfig = [maxMemory: 1024, minMemory: 64, debug: true, maxPerm: 256]
    grails.project.fork = [
            test: false, // configure settings for the test-app JVM
            run: false, // configure settings for the run-app JVM
            war: false, // configure settings for the run-war JVM
            console: false // configure settings for the Swing console JVM
    ]
    
    在这两种情况下,我都不能调试测试并让它们同时重新加载服务

    我的问题是:使用Grails 2.4.4和Intellij ultimate 13.1.5,如何同时完成以下所有工作:

  • 从grails交互控制台运行单个spock集成测试(我不希望每次测试都重新启动整个grails环境)
  • 在命令行上将系统属性传递给grails
  • 在Intellij中调试这些测试
  • 对服务进行更改并使其自动重新加载
  • (如果可以解决这个问题,我很乐意使用forked exec,但需要一种机制将属性传递给forked调试会话)

    您是否尝试过“运行应用程序--调试fork”和远程调试器??“运行应用程序--调试fork”工作正常,但我不想运行应用程序,我想从交互式grails会话中运行单独的测试,如:测试应用程序MySpecialService可能与此相关: