Leiningen 1.3升级插件类路径

时间:2011-09-30 17:33:54

标签: clojure leiningen

我有一个插件,曾经使用来自contrib的命令行,在ns中使用以下内容,

(:use  [leiningen.compile :only [eval-in-project]]
       [clojure.contrib command-line logging])
曾经工作过,我猜是因为leiningen也使用了clojure而且它自动在它的类路径上,上面有了新的contrib结构,

(:use  [leiningen.compile :only [eval-in-project]]
       [clojure.tools cli logging])

似乎leiningen不包含来自lib /在其类路径上的jar并且这会失败,是否有解决方法?

1 个答案:

答案 0 :(得分:0)

右。除非您使用eval-in-project,否则您的代码将在Leiningen的类路径中运行。因此,lein的类路径上的任何代码都可用于您的项目。但是,这些不是。

是否使用cli并在eval-in-project调用中记录?如果是这样,那些jar需要依赖于你调用插件的项目,并且必须将use调用传递给eval-in-project(有关更多信息,请参阅eval-in-project文档)

如果使用cli和logging的代码不在eval-in-project调用中,那么你可以将这些依赖项添加到你的插件项目中,它应该可以工作。如果您尝试在插件项目内部测试插件,则需要将:eval-in-leiningen true添加到project.clj。

如果这样做无效,请使用更多详情/代码扩展您的问题。