我多次遇到这个问题:有时当我命令:grails run-app时,编译器只是一次又一次地运行,即使我之后没有改变.看起来像:
Running Grails application..
Server running. Browse to http://localhost:8080/LiningTest
[groovyc] Compiling 1 source file to E:\workspace\W1\LiningTest\target\classes
[groovyc] Compiling 2 source files to E:\workspace\W1\LiningTest\target\classe
s
[delete] Deleting directory C:\Documents and Settings\Long\.grails\1.3.6\proj
ects\LiningTest\tomcat
Running Grails application..
Server running. Browse to http://localhost:8080/LiningTest
[groovyc] Compiling 1 source file to E:\workspace\W1\LiningTest\target\classes
[groovyc] Compiling 2 source files to E:\workspace\W1\LiningTest\target\classe
s
[delete] Deleting directory C:\Documents and Settings\Long\.grails\1.3.6\proj
ects\LiningTest\tomcat
Running Grails application..
Server running. Browse to http://localhost:8080/LiningTest
[groovyc] Compiling 1 source file to E:\workspace\W1\LiningTest\target\classes
...
Run Code Online (Sandbox Code Playgroud)
编译器在"服务器运行"时成功,但随后它会自动重新编译一些文件(我不知道哪个文件),然后重新运行,然后重新编译...
当我遇到语法错误时,我遇到过这个问题
constraint {
number(min:0.50) // the right way is "min: 0..50"
}
Run Code Online (Sandbox Code Playgroud)
问题是为什么会出现这个问题,以及如何找到问题的原因.(我想我错过了一些逗号/点,但现在很难找到,因为没有错误信息!)
更新:现在我发现问题是我在src/groovy中放置非域类时没有遵循文件夹结构规则.
要做的第一件事就是运行:
grails compile -verboseCompile
Run Code Online (Sandbox Code Playgroud)
这至少会告诉你有问题的文件是什么.
显然,这可能发生在
看看这个:http: //www.pubbs.net/201007/grails/58100-grails-user-groovyc-causing-grails-to-loop-.html
Peter Ledbrook上周在Groovy&Grails Exchange的演讲中提到了这一点(29:20):http://skillsmatter.com/podcast/java-jee/talk-by-peter-ledbrook