如何在不编译的情况下运行一组依赖的groovy脚本?

如何在不编译的情况下运行一组依赖的groovy脚本?,groovy,initialization,Groovy,Initialization,我有一组groovy脚本(或者应该说是groovy应用程序),它具有类似java的分层包结构和与类名相同的脚本名。所有这些都是从主脚本调用的(就像带有main方法的java类)。我只需要调用那个特定的主脚本,并在需要时(或加载并执行)按顺序执行所有其他脚本 实际上,可以通过在运行主脚本时编译所有脚本和获取.class文件并将其放入类路径来实现这一点,但这对于脚本来说是非常多余的(想法是让它在不编译的情况下工作,即使groovy会在幕后执行) 如何实现它?Groovy可以很容易地在脚本环境中使用—

我有一组groovy脚本(或者应该说是groovy应用程序),它具有类似java的分层包结构和与类名相同的脚本名。所有这些都是从主脚本调用的(就像带有main方法的java类)。我只需要调用那个特定的主脚本,并在需要时(或加载并执行)按顺序执行所有其他脚本

实际上,可以通过在运行主脚本时编译所有脚本和获取.class文件并将其放入类路径来实现这一点,但这对于脚本来说是非常多余的(想法是让它在不编译的情况下工作,即使groovy会在幕后执行)


如何实现它?

Groovy可以很容易地在脚本环境中使用—无需编译步骤。请阅读以下内容:

你可以写你常用的main方法等等,然后这样称呼它

groovy -cp foo/ foo/MyScript.groovy [arguments]
或者,如果你在一个*nix环境中,你可以像这样给它一个shebang

#!/usr/bin/env groovy
println("Hello world")
for (a in this.args) {
  println("Argument: " + a)
}

并使用
/fileName
运行它(前提是您已将其标记为可执行文件)

Groovy可以很容易地在脚本环境中使用—无需编译步骤。请阅读以下内容:

你可以写你常用的main方法等等,然后这样称呼它

groovy -cp foo/ foo/MyScript.groovy [arguments]
或者,如果你在一个*nix环境中,你可以像这样给它一个shebang

#!/usr/bin/env groovy
println("Hello world")
for (a in this.args) {
  println("Argument: " + a)
}

并使用
/fileName
运行它(前提是您已将其标记为可执行文件)

您是否在包结构中尝试了第一个建议?假设您有foo/MyScript.groovy,其中包含main,具体取决于foo/package/DependencyScript.groovy。你试过在这种情况下使用groovy foo/MyScript.groovy吗?是的,像这样设置类路径,$groovy-cp foo/foo/MyScript.groovy,或者在MyScript.groovy存在的相同位置运行groovy可执行文件。我很抱歉。你的说法是对的,看来我的情况不同寻常。Thanx.您是否尝试过包结构中的第一个建议?假设您有foo/MyScript.groovy,其中包含main,具体取决于foo/package/DependencyScript.groovy。你试过在这种情况下使用groovy foo/MyScript.groovy吗?是的,像这样设置类路径,$groovy-cp foo/foo/MyScript.groovy,或者在MyScript.groovy存在的相同位置运行groovy可执行文件。我很抱歉。你的说法是对的,看来我的情况不同寻常。塔克斯。