2

contrib のコマンドラインを ns で次のように使用していたプラグインがあります。

(:use  [leiningen.compile :only [eval-in-project]]
       [clojure.contrib command-line logging])

以前は機能していましたが、leiningen も clojure と contrib を使用しているため、上記の新しい contrib 構造を持つクラスパスに自動的にあると推測しています。

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

leiningen のクラスパスに lib/ からの jar が含まれていないようで、これは失敗します。回避策はありますか?

4

1 に答える 1

0

右。を使用しない限りeval-in-project、コードは Leiningen のクラスパスで実行されます。したがって、lein のクラスパス上のすべてのコードをプロジェクトで使用できます。ただし、これらはそうではありません。

eval-in-project 呼び出し内で cli とログを使用するコードはありますか? その場合、それらの jar は、プラグインを呼び出すプロジェクトに依存する必要があり、use呼び出しは eval-in-project に渡される必要があります (詳細については、eval-in-project のドキュメントを参照してください)。

cli とログを使用するコードが eval-in-project 呼び出し内にない場合は、それらの依存関係をプラグイン プロジェクトに追加するだけで機能します。プラグイン プロジェクト自体の内部でプラグインをテストしようとする場合は:eval-in-leiningen true、project.clj に追加する必要があります。

これで解決しない場合は、質問を詳細/コードで拡張してください。

于 2012-04-28T04:29:57.997 に答える