@Grape在包含多个文件的脚本中

时间:2011-05-16 20:31:35

标签: groovy

我想在我的groovy程序中使用@Grape,但我的程序包含几个文件。 Groovy Grape page上的示例似乎都假设您的脚本将包含一个文件。我怎样才能做到这一点?我应该将它添加到其中一个文件中,并期望导入将从其他文件中运行吗?如果是这样,那么将所有@Grape调用放在一个没有其他代码的文件中是很常见的吗?我是否需要将Grape调用添加到将导入包的所有文件中?我是否需要下载JAR并创建一个Gradle文件,我现在没有这个文件?

2 个答案:

答案 0 :(得分:4)

葡萄引擎和@grab注释是作为核心groovy的一部分创建的,其中考虑了单个文件脚本,以允许一大块文本轻松地成为一个功能齐全的程序。

对于大型应用程序,gradle是一个很棒的构建工具,具有许多有用的功能。

但是,您可以使用葡萄来管理所有应用程序依赖项 无论您是注释每个文件还是单个文件无关紧要,只需确保在尝试使用外部类之前读取@grab带注释的文件。
注释主类可能更好,因为如果你有注释分散,你很容易忘记库版本。

是的, 应该考虑使用十几个文件的任何应用程序或者您可能希望在别处作为库重用的任何内容。

答案 1 :(得分:1)

在我看来,这取决于你的程序是如何运行的......

如果您的程序要作为独立脚本的集合运行,那么我可能会将每个脚本所需的@Grab放在每个脚本的顶部。

如果你的程序更像是一个带有单一入口点的标准样式的程序,那么我会去使用像Gradle这样的构建工具(如你所说),因为你得到了很多通过使用它轻松获胜。

首先,它可以很容易地定义您的依赖项(以及build a single large jar包含所有依赖项)

其次,Gradle使得开始编写测试,包括代码覆盖插件或有用的工具like codenarc变得非常容易,以建议对代码进行可能的修复或改进。这些都变得非常宝贵,不仅可以用于改进代码(或者知道代码的工作原理),而且在重构代码时,你知道你没有破坏曾经工作过的东西。