6

leiningenを使用して新しいclojureプロジェクトを作成すると、次のようなディレクトリツリーが作成されます。

.
|-- doc
|   `-- intro.md
|-- project.clj
|-- README.md
|-- src
|   `-- hello_friend
|       `-- core.clj
`-- test
    `-- hello_friend
        `-- core_test.clj

多くの場合、必要なのは単一のclojureファイルだけであり、leiningenを使用してライブラリを処理し、replを開始したいと思います。

2つの質問があります。

(1)この構造でライニンゲンを適切に動作させることは可能ですか?

.
|-- project.clj
`-- hello.clj

私はそれを大いに好みます。(実際には、project.cljをhello.cljファイルの一部として持つ方がさらに良いでしょう)

(2)深いディレクトリ構造の正当な理由はありますか?それとも、それはジャバランドからの単なる習慣ですか?


私が見る限り、これは正常に機能することに注意してください。

project.clj

(defproject generic "0.0.0"
  :dependencies 
  [[org.clojure/clojure "1.4.0"]
   [hiccup "1.0.2"]]
  :source-paths ["."]
  :main two

  :repl-options { :port 4001 :init (println "(-main) to run") }
)

one.clj

(ns one
  (:use hiccup.core))

(def doom (html [:h1 "doom"]))

two.clj

(ns two 
  (:require one))

(defn -main [] 
  (println one/doom))
4

2 に答える 2

4

(1):source-paths ["."]project.cljで指定できます。可能なすべてのオプションについては、leinサンプルプロジェクトを参照してください

(2)2つの名前空間があり、一方が他方にある場合は、「深層」構造が必要ですrequire。名前空間がファイルにマップされる方法の説明については、ここを参照してください。

于 2012-11-25T13:07:39.787 に答える
0

デフォルトのsrcパス(深層構造)は、ソースコードを構成から分離します。大きなアプリでは、ナビゲーションを容易にするために、ディレクトリごとに複数の名前空間を整理することもできます。

この最初のRESTAPIでさえ、すべてがルートにあると扱いにくくなります。

シェフィー

于 2022-01-06T16:26:00.350 に答える