Grails自动重新加载新的控制器动作

时间:2014-08-22 09:31:01

标签: grails groovy reload spring-loaded grails-2.4

我已经

  1. 创建了新的Grails 2.4.3项目
  2. 已创建TestController
  3. grails.reload.enabled = true
  4. 中设置BuildConfig.groovy
  5. 使用grails -reloading run-app
  6. 运行应用程序

    我的控制器操作代码:

    def index() {
        render "test"
    }
    

    当我将字符串test更改为test2时 - 我在控制台中看到(在Eclipse中):

    ..................
    |Compiling 1 source files
    

    重新加载页面后,我看到test2 - 确定。

    但是当我尝试添加新方法时:

    def test3() {
        render "test3"
    }
    

    我明白了:

    error result

    为什么?为什么甚至没有网址?

    示例 - 操作不存在: enter image description here

    有趣的是 - 当我创建一个全新的控制器时,新创建的控制器的index动作起作用......

    修改

    过了一段时间,我决定选择弹簧靴,事实上 - 它也没有用。我认为springloaded是问题所在,因为它没有在@Controller

    中添加新的方法

3 个答案:

答案 0 :(得分:4)

我在github repo上问了同样的问题。

似乎最新的弹簧式SNAPSHOT 正常工作

但它必须被整合到Grails中 - 不幸的是在下一个版本中:(

答案 1 :(得分:1)

我冒昧地举报this issue to Grails

答案 2 :(得分:1)

对我有用的解决方案:

1)版本:

  • IDE:Intellij IDEA 14.1.3
  • JDK:jdk1.7.0_25
  • GRAILS:2.5.0

2)在BuildConfig.groovy上:

grails.reload.enabled = true
grails.project.fork = [
        test: false,
        run: false,
]

3)最初,我的代码是在grails 2.4.4上编译的,所以我升级到了2.5.0。插件或任何东西的版本更改都没有问题。我的猜测是有效的,因为它使用了弹簧加载的更高版本。步骤进行:

  • set-grails-version 2.5.0
  • 清洁
  • 删除目录工作(只是为了确定,我真的不知道这是不是很好的做法)
  • 编译和/或转到第4号

4)使用此配置的Debug Idea:run-app -reloading

完美,没有分叉调试,重新加载,重新加载后没有控制台错误,所有断点都在代码更改后工作!