Clojure和lein

时间:2014-01-27 18:46:55

标签: clojure leiningen

是否有一些有用的方法可以在lein中触发完整的重建?我发现很难理解lein如何/何时重新运行/重新加载代码。改变文件似乎并不总是导致应用更改,并且手动请求重新编译gen-class似乎并不总是生成文件。

手动删除目标目录中的文件并不总是有效,因为即使我重新编译这些文件并不总是生成,所以我会收到ClassNotFound错误。如何让lein在每次调用时正确重建所有内容?

编辑:我的大部分困惑是由于未在project.clj文件中指定使用gen-class创建的类,其中包含:@ juan.facorro评论中建议的aot指令,例如:

(defproject 
     ...
      :aot [mytestclass.full.packagename.TestClass1 mytestclass.full.packagename.TestClass2 ]
     ...
    )

1 个答案:

答案 0 :(得分:1)

这听起来像是一个更大问题的一部分:缩短clojure开发周期。一旦你的项目在REPL中快乐地运行(这是第一个目标),有几件事可以真正降低开发速度。例如,更改协议deffinitions要求您搜寻并重新加载具有该协议实例的每个命名空间。 Stewart Sierra提出great project,给出了presentationinterview关于如何设置项目和流程的信息,以便尽快重新加载需要重新加载的所有内容。