問題タブ [leiningen]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 環境変数CLASSPATH<>ClojureのCLASSPATH。なんで?
ここで、環境変数CLASSPATH
daniel @ daniel-laptop:〜/ ps / clojure / projects / ring-tutorial $ echo $ CLASSPATH
/ home / daniel / ps / clojure / projects / ring-tutorial/srcを確認します。
ここで、Javaがそれをどのように考えているかを確認します。
daniel @ daniel-laptop:〜/ ps / clojure / projects / ring-tutorial $ lein repl
Clojure 1.1.0 user =>(System / getProperty "java.class.path")
"src /:classes /:/ home / daniel /.m2/repository/leiningen/leiningen/1.1.0/leiningen-1.1.0-standalone.jar:lib/clojure-1.1.0.jar:lib/servlet-api-2.5-6.1.14.jar:lib/ commons-io-1.4.jar:lib / clj-stacktrace-0.1.0.jar:lib / clojure-contrib-1.1.0.jar:lib / ring-devel-0.2.0.jar:lib / jetty-util- 6.1.14.jar:lib / clj-html-0.1.0.jar:lib / ring-jetty-adapter-0.2.0.jar:lib / jetty-6.1.14.jar:lib/ring-core-0.2。 0.jar:lib / commons-fileupload-1.2.1.jar:lib / ring-servlet-0.2.0.jar:lib / commons-codec-1.4.jar: "
ご覧のとおり、2つの応答は完全に異なります。私が見つけたすべてがこれが機能するはずだと言っていることを除いて、JavaのCLASSPATH変数を編集して「取得」する必要がある場所を誤解しているに違いないと確信しています。それで、取引は何ですか?leiningenは独自の奇妙な反逆者のclojureを生み出しますか?完全に無関係な変数を編集していますか?どんな助けでも大歓迎です。
jar - 「lein jar」と「lein uberjar」がメインクラスを適切に設定していない
プロジェクトを実行lein uberjar
すると、対応する jar ファイルが作成されました。jar を実行すると aClassNotFoundException: explodingdots.core
がスローされます。explodingdot.core
メインクラスとして指定しました。core.class
jarファイルを抽出しましたが、対応するディレクトリには実際にはありませんでした。私は何を忘れましたか?
私は次のコードを持っていますsrc/explodingdots/core.clj
私の内容project.clj
は次のとおりです。
注: leiningen 1.3.1 を使用しています
testing - clojureで独自の名前空間の外にある型をどのように使用しますか?
私はテクネと呼ばれるライニンゲンでセットアップされたプロジェクトを持っています。Scrub と呼ばれる型と foo と呼ばれる関数を含む、scrub と呼ばれるモジュールを作成しました。
techne/scrub.clj:
techne/scrub_test.clj:
テストを実行すると、次のエラーが表示されます。
test-scrub を削除すると、すべて正常に動作します。:use techne.scrub が関数定義を「インポート」するのに型定義をインポートしないのはなぜですか? 型定義を参照するにはどうすればよいですか?
clojure - Leiningen を使用した JVM オプション
-server
Leiningen を使用して Clojure を起動するときのように、JVM オプションを設定するにはどうすればよいですか?
clojure - Incanterでの乱数の生成
IncanterのParallelColtで乱数ジェネレーターを使用するにはどうすればよいですか?
これらの依存関係をproject.cljファイルにリストしました。
そして、私は試してみました、そして私は(import cern.jet.random.tdouble Normal)
を取得しclass java.lang.ClassNotFoundException
ます。
私はここで何が間違っているのですか?
clojure - clojure lein (read-line) stdin の問題
したがって、通常の clojure repl は正常に(read-line)
機能し、入力を収集してからエコーします。ただし、使用するlein repl
と、入力文字がエコーされることはなく、標準入力の読み取りコマンドから戻ることもできません。
での再バインドと関係があると確信していますが、回避策/修正があるかどうか疑問に思っていましたか?
ありがとう。
clojure - CakeとLeiningenの違いは何ですか?
CakeとLeiningenの違いは何ですか?
unit-testing - ライニンゲンでのテスト
次のディレクトリ構造を持つ leiningen を使用して、小さな Clojure プロジェクトを作成しています。
を実行するlein test
と、失敗なしで 0 個のテストを実行したと報告されますが、意図的に失敗するように設計されたテストを test/.../core.clj ファイルに入れました。
:test-path test
ファイルに行を追加し、project.clj
再実行するとエラーが発生しました。
Clojure 1.2 と最新の lein (1.3.1) を実行しています。
clojure.core または lein コードに問題があるようです。
clojure - leiningen (Clojure) で AOT コンパイルを最小化するにはどうすればよいですか
leiningen を使用して Clojure プロジェクトを作成すると、すべての *.clj ファイルが AOT でコンパイルされます。通常、AOT コンパイルは必要ないため、最小限に抑えたいと考えています。
これは、Java が支配する環境で Clojure を補完するものとして受け入れてもらうために必要なことです。奇妙な名前の 250 kB 以上のクラス ファイルを持ち、それらの中に小さな clj ファイルを隠すという代替案に対して、単一のクラス ファイルをいくつかの kB の clj ファイルと一緒に接着剤として「販売」する方が簡単です (これは実行中にそれ以上読み取らないでください)。
理想的には、「lein compile」の結果は、(clj ファイルと clojure ライブラリと共に) 必要なクラス インスタンスを実装する単一の小さなクラス ファイルになります。
これを達成する最も簡単な方法は何ですか?もちろん、Java を 1 行も書きたくありません (もちろん)。
テクノマンシーからのフィードバック後の更新
これがライニンゲンの問題だとは思いません。例を挙げて、私が何を求めているかを説明しましょう。例の長さをお許しください。私は leiningen 1.3.1 を使用していますが、1.4.0-SNAPSHOOT も同じように動作すると思います。
project.clj を次のように変更します (「:main dummy.core」を追加):
および src/dummy/core.clj から:
今それをコンパイルします:
これにより、 classes/dummyに次のファイルが生成されます。
これはすべて正しいです。結果を実行できます。
代わりに必要なものが来ましたが、手動で行います。core.classを除くすべてのクラスファイルを削除し、core.clj をclasses/dummyにコピーできます。これは非常に空に見えます。
core.class には、実行時に core.clj をロードするコードが含まれており、結果は同じです。まだ実行できます。
また、core.clj を変更することもできます (注:クラス/ダミー内で!)。もちろん、変更を再コンパイルする必要はありません。
私の質問はこれに要約されます:このcore.classだけを取得する簡単な方法はありますか?
clojure - Leiningenでredis-clojureを使用する際の問題
ねえ、私はClojureとLeiningenに不慣れで、少し立ち往生しています。Leiningenでプロジェクトを立ち上げることができました。それをuberjarにコンパイルして、を実行することができますrepl
。aleph
また、単純な同時Webサーバーを実行するために名前が付けられた依存関係をロードすることもできました。
私にとっての次のステップは、redis-clojure
redisにアクセスするために使用することです。しかし、ここで私は立ち往生しています。これは私のproject.clj
です:
そして、これが私の: redis-clojureの例に従ってcore.clj
行を追加しただけであることに注意してください。(:requre redis)
私が実行しようとすると、lein repl
これが起こります:
はい、実行lein deps
しました。redis-clojurejarは私のlib
ディレクトリで利用できます。私はおそらく些細なことを見逃していますが、私はこの問題に数時間取り組んでおり、解決策に近づくことはできません。ありがとう!