2009-07-22 6 views

答えて

24

あなたはいくつかの選択肢があります。

ファイル(パッケージではない)の場合、ファイルにはloadを使用できます。あなたのファイルは、「fun.clj」と命名された場合は、あなただけの拡張子のないファイルの名前を使用します。

(load "fun") 

(提供fun.cljは、あなたのクラスパス上にありました)。それとも、あなたのクラスパスではなくfilesディレクトリに

(load "files/fun") 

なかった場合。

それともload-fileを使用して、それをあなたのファイルの場所を渡すことができます。

(load-file "./files/fun.clj") 

あなたが(パッケージに入れて)、それらを名前空間に望んでいた場合は、あなたが最初にnsマクロを置くところあなたのファイルの、あなたのクラスパスに再び置く。その後、useまたはrequire経由で読み込むことができます。ここで

は、私が説明してきた機能のためのドキュメントです:

+0

申し訳ありませんが、まだ問題はあります。私はstopwords.cljとAutotag.cljというファイルを持っています。ストップワードをオートタグにインポートしたい私は( "stopwords"をロードする)、 "私はストップワードとAutotagを同じフォルダに持っていますが、" classpathにstopwords__init.classまたはstopwords.cljを見つけることができませんでした "と言います。申し訳ありませんが、私は完全な初心者です。私を助けてください。 – unj2

+0

現在のディレクトリはおそらくクラスパスにはないので、clojureはそれを「見る」ことができません。あなたのクラスパスのどこかにstopwords.cljを置いてください(またはあなたのクラスパスに "。"を含めるように変更してください)。 – seth

+0

申し訳ありませんが、わかりません。ここでemacsユーザー。 – seth

1

これは私の問題を解決し、私はここで無数の他の問題を見てきましたので、私は明確にしたいと思います。

(Linuxの場合)のEmacsで最も簡単な方法は、このような何かを行うことです。

java -cp "lib/*":. clojure.main -e "(do (require 'swank.swank) (swank.swank/start-repl))" 

(注意を "のlib/*" :.のMx次にあなたが使用することができます

を-cpするために与えられ

これは必須かどうかわかりませんが、私は同じバージョンのclojure、clojure-contrib、swank-clojureを両側で使用することをお勧めします。

swac-clojure-classpathに "。"を指定することで、emacs内のパスを設定することもできます。

2

"ロード"ソースファイルのほかに、 "チェックアウト依存関係"機能を使用することもできます。 2つのライニングプロジェクトがある場合、プロジェクトAにはB(プロバイダー)が必要です。プロジェクトAのルートディレクトリに、 "checkouts"というディレクトリを作成します。内部の "/ checkouts"は、プロジェクトBのルートディレクトリへのシンボリックリンクを作成します。プロジェクトAのproject.cljで

- project A 
    - project.clj 
    - checkouts 
    - symlink to project B 
    - src 
    - test 

、に依存関係としてプロジェクトBを宣言する:それはclojars.org内のプロジェクトであるかのように依存関係セクション。例えば。

(defproject project-a 
:dependencies [[org.clojure/clojure "1.5.1"] 
       [project-b "0.1.0"]]) 
事ががある

は、プロジェクトBと型に行かなければならない:あなたの〜/ .m2ディレクトリに表示されますjarファイルにプロジェクトBのファイルをコンパイルします

lein install 

、あなたのローカルclojars.orgキャッシュのようなものです。

あなたはこのすべてを設定したら、それはclojars.orgからであったかのように、プロジェクトAのあなた* .cljのsrcファイル(複数可)に、あなたは、通常の方法でプロジェクトBファイルを「必要」ことができます。

(ns project-a.core 
    (:require [project-b.core :as pb]) 

この方法で、あなたはこのようなプロジェクト-b.core通常の方法で関数を参照することができます私の意見では

pb/myfunction1 

、これはLeiningenをプロジェクト間でライブラリとデータを共有するためのかなり良い方法です。各ライニンゲンのプロジェクトを独立した、自己完結した、最小限のものにすることを試みています。

関連する問題