重新编译不适用于groovlets

时间:2009-03-19 21:16:51

标签: groovy

我是groovy的新手,非常喜欢它,但发现了编译问题。我正在使用Jetty作为网络服务器,它正在提供 .groovy 文件(groovlets)。

考虑两个文件:

Test1.groovy 包含

println new Test2().property

Test2.groovy ,其中包含:

public class Test2 {
   String property = "print this"
}

在浏览器中调用 /Test1.groovy 时,会打印打印此。但是当我在其他地方更改属性时,它仍会打印打印此,它不会重新编译。我唯一能做的就是重启码头。 请注意,当所有代码都在一个文件中时,重新编译确实有效。

有解决方法吗?

2 个答案:

答案 0 :(得分:0)

我认为它始终显示默认值的原因是因为你内联new ...或者这只是示例的问题?

答案 1 :(得分:0)

谢谢,但不是这样。 我越来越近了,编译器可能被骗了:

在浏览器中调用 /test2.groovy 时会出现服务器错误,因为test2.groovy只包含类代码(而不是主方法),但是当您添加行时 println ""
对于此文件,它实际上是在浏览器中调用它时重新编译的。

之后,还应重新编译 test1.groovy 以使其正常工作。这不是一个非常简洁的解决方案,但码头不需要以这种方式重新启动......