2011-05-16 63 views
5

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

回答

4

葡萄引擎和@grab注释是在单个文件脚本的基础上创建的核心groovy的一部分,允许大量文本轻松地成为一个功能完整的程序。

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

但是,你可以用葡萄来管理所有的应用程序依赖关系。
无论您是注释每个文件还是单个文件都无关紧要,只要确保在尝试使用外部类之前已阅读了@grab注释文件即可。
注解主类可能会更好,因为如果散布的注释很容易丢失库版本的跟踪。

是的,你应该考虑gradle的任何应用程序与十多个文件或任何你可能想在其他地方作为一个库重用。

1

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

如果你的程序要运行作为独立脚本的集合,那么我很可能坚持每个脚本所需的@Grab在他们每个的顶部。

如果你的程序是一个入口点以下的标准样式的程序,那么我会去使用像摇篮构建工具(如你所说),因为你得到一个由很多轻松胜使用它。

首先,它可以很容易地定义你的依赖关系(和build a single large jar包含所有的人)

其次,摇篮使得它很容易开始写测试,包括代码覆盖率插件,或有用的工具like codenarc提出可能的修复或改进您的代码。这些都不仅对于改进你的代码(或者知道你的代码有效)而言是非常宝贵的,而且在重构你的代码时,你也知道你没有破坏曾经工作过的任何东西。

+0

问题是关于我需要做什么,而不是什么是合适的。我认为这两种选择都可行,但它们是唯一的选择吗?我可以在不使用Gradle的情况下将@Grape调用放在一个地方吗? – dromodel 2011-05-18 04:05:23