2011-05-16 36 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