2

我正在尝试编写一个与最新版本和下一个 2.0 版本兼容的 Leiningen 插件,但在运行插件本身时遇到了麻烦。我的意思是我想编写代码然后运行lein foo以在插件代码本身上运行最新版本的插件代码。我的 project.clj 文件如下:

(defproject foo "0.0.0"
  :description "simple version for experiment"
  :dependencies [[org.clojure/clojure "1.4.0"]
                 [fs "1.1.2"]]
  :source-path "src/clj")

在 src/clj/leiningen 文件夹中,我有一个简单的 foo.clj 文件,它只调用 src/clj/bar/foo-test.clj 中打印项目目录内容的函数。但是,每当我运行lein foo它时,它都会说无法在 CLASSPATH 上找到 foo.clj。如果我将所有文件从 src/clj 移动到 src 并删除:source-path指令,那么它会在 foo.clj 中运行正确的东西,但随后会抱怨在 CLASSPATH 上找不到 fs.clj。我希望这会更容易,而不需要将 foo 依赖项添加到 project.clj 和lein install,deps,foo更改之间,但这是目前我让它工作的唯一方法。

谢谢你的帮助!

4

1 回答 1

0

根据:https://github.com/technomancy/leiningen/blob/master/doc/PLUGINS.md:source-path现在:source-paths在 Leiningen 2.0 中,应该包含一个向量而不是直接字符串。

另一个潜在的错误是您:eval-in-leiningen true在项目文件中没有。我认为继承 leiningen 本身的 CLASSPATH 是必要的。我不确定这是否会引发任何查找问题fs.clj

于 2012-07-08T22:13:02.310 回答