我是groovy的新手,非常喜欢它,但发现了编译问题。我正在使用Jetty作为网络服务器,它正在提供 .groovy 文件(groovlets)。
考虑两个文件:
Test1.groovy 包含
println new Test2().property
Test2.groovy ,其中包含:
public class Test2 {
String property = "print this"
}
在浏览器中调用 /Test1.groovy 时,会打印打印此。但是当我在其他地方更改属性时,它仍会打印打印此,它不会重新编译。我唯一能做的就是重启码头。 请注意,当所有代码都在一个文件中时,重新编译确实有效。
有解决方法吗?
答案 0 :(得分:0)
我认为它始终显示默认值的原因是因为你内联new
...或者这只是示例的问题?
答案 1 :(得分:0)
谢谢,但不是这样。
我越来越近了,编译器可能被骗了:
在浏览器中调用 /test2.groovy 时会出现服务器错误,因为test2.groovy只包含类代码(而不是主方法),但是当您添加行时
println ""
对于此文件,它实际上是在浏览器中调用它时重新编译的。
之后,还应重新编译 test1.groovy 以使其正常工作。这不是一个非常简洁的解决方案,但码头不需要以这种方式重新启动......