2011-05-14 121 views
2

我正在阅读Doug Hoyte的Let Over Lambda。本书主要介绍编写高级Common Lisp宏。Clojure源代码库

如果我开始编写许多Clojure宏,我想将它们保存在某种类型的库中,也许是一个源代码JAR文件。目前,我将这些内容保存为“Snippets”程序,并根据需要将它们复制/粘贴到代码中。如果可以将它们保存在JAR中,那么对宏的更改只需要重新编译使用它的任何项目。

是否有一些方法可以将它们打包成源JAR,然后可以将它们包含在Clojure Maven构建中,以便它们与其余代码一起编译并最终放入最终项目可执行JAR文件中?

我知道开发Clojure代码的惯用方式是使用REPL,但我经常编写可执行的JAR实用程序,发送给对Clojure一无所知的内部客户。

回答

3

我的设置是我有一个私人库,用于存放在单独项目中的这些函数(我使用Eclipse与Clojure Counterclockwise plugin)。

在开发过程中,我只是将我当前的项目设置为使用我的标准库作为依赖项。无论您使用REPL还是将应用程序作为独立程序启动,这似乎都可以正常工作。

然后,我使用Maven(m2eclipse)将其构建到jar文件工件中,该工件可以按照正常方式按需分发。