9

まず、私はJavaプログラマーではないので、回答がJavaの観点から定義されていない場合に役立ちます(それが理にかなっている限り)。

私は、 clojureソースファイルをに配置する一般的なパターンと思われるものを使用するleiningenプロジェクト(具体的にはnoirsrc/YOUR-NAMESPACE/を使用するWebプロジェクト)を持っています。これまでのところ、ディレクトリとファイルの追加に成功しており、ns(生成されたコードに見られるパターンに従って)の基礎としてファイルパスを使用しています。

動作しなかった新しいファイルを追加しましたが、なぜだろうと思います。パスはPROJECT-ROOT/src/bayou/lib/api-helpers.cljであり、名前空間は(ns bayou.lib.api-helpers)です。私が得ている特定のエラーは次のとおりです。

java.io.FileNotFoundException: Could not locate bayou/lib/api_helpers__init.class or bayou/lib/api_helpers.clj on classpath

clojureが名前空間を認識するために実行するすべての手順は何ですか?

4

1 に答える 1

13

問題は、名前空間のハイフンです。

Clojureの喜びから

HYPHENS / UNDERSCORES名前空間にハイフン(my-cool-lib)を付けて名前を付ける場合は、対応するソースファイルにハイフン(my_cool_lib.clj)の代わりにアンダースコアを付けて名前を付ける必要があります。

基本的な説明は次のとおりです:https ://stackoverflow.com/q/4451693/32174

于 2011-11-23T04:10:40.497 に答える