目标: 我想在.groovy文件中定义groovy类作为包的一部分,但不需要编译它们。然后,我想在同一个包中定义groovy脚本,从附近的.groovy文件中导入类定义,并执行脚本......所有这些都没有编译。
问题, 这似乎可以使用GroovyClassLoader()(并且有几个人发布了how-to)。但是,我没有其他人似乎提到的问题是,这种策略意味着内容辅助永远无法识别您的类和方法,并且您的代码将充满下划线,并且不会接收错误检查。
您可能会说“这只是使用这种动态功能的副作用,eclipse如何能够知道?”,但请考虑以下因素:
在构建项目时,我正在创建脚本和包中的类,就像正常的程序一样。当我为自定义类添加import语句时,Eclipse会识别所有内容并且内容辅助很高兴。然而,尽管满足了内容辅助,但是当我尝试执行脚本时它会遇到麻烦,因为eclipse返回:无法解析类(可能是因为它仍然只是一个groovy文件,而不是编译成类文件)。
所以,我环顾四周,看起来我必须注释掉import语句,然后使用groovyclassloader来解析groovy文件。然而,这具有破坏内容辅助的负面副作用。
问题:我的结论基本上都是正确的吗?
建议:有没有任何已知的方法让内容辅助与GroovyClassLoader一起工作?也许某种方式告诉它忽略失败的进口或什么?
答案 0 :(得分:0)
事实证明这是我配置类路径的方式的问题。一旦我的文件夹结构与包结构一致,eclipse就会找到我的类文件并能够导入类。