繁体   English   中英

导入外部(未编译)的groovy类,并将其保留在jar中

[英]Import external (not compiled) groovy classes and keep them outside the jar

我在Eclipse中创建了一个Groovy项目。 我想构建一个可执行jar,将一些常规文件源保留在jar外,以便可以在运行时对其进行修改和重新加载。

我知道我可以使用GroovyScriptEngine做到这一点:

Class modelClass = new GroovyScriptEngine( "path_to_file" ).loadScriptByName( "Model.groovy" ) ;
Object modelInstance = modelClass.newInstance() ;

现在,我的问题是:是否可以例如在我的主类中简单地使用:

import Model

class Main {
static void main(String[] args) {
    Model model = new Model(args)
    ...
}

我希望我的问题很清楚...非常感谢您的帮助!

如果您的jar在groovy的上下文中,那么您可以将groovy文件(类)添加到classpath文件夹中。 groovy类加载器会在访问时自动编译它们。

否则,创建一个groovy引擎,将groovy文件添加到classpath目录。

必须要编译一些东西。 如果将它们保留在jar之外,但位于类路径中,则必须将它们编译为.class文件,系统才能将它们拾取。

最好的选择是使用您提到的ScriptEngine在内部“编译”它们(而不保存类)。 这使得.jar中的类很难灵活地访问外部groovy脚本,但这可能是最好的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM