我正在阅读Doug Hoyte的Let Over Lambda。本书主要是关于编写高级Common Lisp宏。
如果我开始编写许多Clojure宏,我想将它们保存在某种库中,也许是源代码JAR文件。目前,我将这些内容保存为“Snippets”程序,并根据需要将它们复制/粘贴到代码中。如果它们可以保存在JAR中,那么对宏的更改只需要重新编译任何使用它的项目。
是否有某种方法可以将它们打包成源JAR,然后可以将其包含在Clojure Maven构建中,以便它们可以使用其余代码进行编译并最终生成最终的项目可执行JAR文件?
我知道开发Clojure代码的惯用方法是使用REPL,但我经常编写可执行的JAR实用程序,我发送给对Clojure一无所知的内部客户。
答案 0 :(得分:3)
我的设置是我有一个用于这些函数的个人库,我将它保存在一个单独的项目中(我将Eclipse与Clojure Counterclockwise plugin一起使用)。
在开发过程中,我只是将当前项目设置为使用我的标准库作为依赖项。无论您使用REPL还是将应用程序作为独立程序启动,这似乎都可以正常工作。
然后我使用Maven(m2eclipse)将其构建为一个jar文件工件,可以按照正常方式按需要分发。