問題タブ [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.
clojure - プロジェクトプロパティをリテラル以外の文字列に設定すると、leiningenでは機能しないようです
簡単なプロジェクトファイルを取ります。
(defproject sample-clojure-cloudbees "1.0.0-SNAPSHOT":description "Sample clojure application-clojure 1.3!":blah "hello")
(get project:blah)を読むと、期待どおりに「hello」文字列が返されます。
「こんにちは」を置き換えると
:blah(slurp "some file ...")
エラーが発生します。原因:java.lang.ClassCastException:clojure.lang.PersistentListをjava.lang.Stringにキャストできません
私が期待していることを評価していないようです、何かアイデアはありますか?
unit-testing - Leiningenプロジェクトに単体テストを追加するにはどうすればよいですか?
leiningenには優れたユニットテストプラグインがあることに気づきました。「leintest」と入力するだけです:)。ただし、テストファイルをどのように「検索」するかは明確ではありません。それらを配置する必要がある特定のフォルダーはありますか?または、名前空間をスキャンするだけの場合(これは、leinのドキュメントに記載されています)、leiningenがテストを表示するために使用する必要のある名前空間をどのように知ることができますか?
私はtests.cljという1つのテストファイルを作成することを考えていました。サンプルテンプレートは本当にいいでしょう。
clojure - Compojure:生産中のラインリング?
人々は、Compojureアプリケーションを簡単にデプロイするためにラインリングを使用することを提案しているようです。それは単に開発のためのものではありませんか?私は、lein-ringで実行されている同じアプリとuberjarを使用してleiningenでパックされた同じアプリのベンチマークを行いました(java -jarで実行され、ring-jettyが含まれています)。
驚いたことに、ラインリングを使用するとパフォーマンスが少し向上します。私は何かが足りないのですか?
どうすればlein-ringを使い続けることができますが、例外が発生した場合にスタックトレースを出力したり、変更されたファイルをチェックしたりすることは避けられますか?
ありがとう
unit-testing - Leiningenでテスト名を印刷する方法は?
実行中の各ライニンゲンテストメソッドを印刷したいと思います。比較的単純なleinテストファイルがあります。
テストを実行するときに、replで「test1」が出力されるのを見たいです。メソッド名を出力する簡単な方法はありますか(myfixtureでbのメソッドを呼び出すか、「leintest」の呼び出しで)?
clojure - ring/compojure を使用した静的ファイルの提供 - 戦争から
リング(およびlein-ringツール)を使用すると、開発中にドキュメントに従って「リソース」などから静的ファイルを提供できます-ただし、lien uberwarを介してパッケージ化すると、作成方法がわかりませんコンテナで実行するときにこれらのファイルを提供します。wrap-resource または :resource-path の設定で競合するドキュメントが表示されますが、どれも機能していないようです。
tomcat - Compojure:ファイルシステムにアクセス
これは私のproject.cljファイルです:
そしてこれは私のルーティング:
いくつかのWeb静的ファイルが/resources/public
あり、それらにアクセスできます。コードでは、とにあるファイルシステム上のいくつかのファイルにもアクセスする必要があり/resources/data
ます/resources/tpl
。lein ring
サーバーまたはを使用するlein run
と、次の呼び出しが正常に機能します
しかし、lein uberwar
Tomcatを使用してアプリケーションをパックしてデプロイすると、失敗し、FileNotFoundExceptionが発生します。おそらくこれは、leinでは現在の作業ディレクトリがプロジェクトルートであり、TomcatではTomcatのbinディレクトリであるためです。
たとえば、「resources / data / data.dat」がTomcatで機能しないか、「data / data.dat」が開発で機能しないため/resources/data/data.dat
、戦争に巻き込まれています。/data/data.dat
ちなみに、Compojureでこれを管理する適切な方法は何ですか?ありがとう。
maven - Leiningen: project.clj で Maven の groupId とパッケージング プロパティを設定する方法
Maven を使用する Java プロジェクトの 1 つでパッケージ化して使用したい Clojure プロジェクトがあります。
Leiningen を使用して pom.xml ファイルを生成すると、groupId が artifactId に設定されますが、groupId を親 Java プロジェクトと同じにする必要があります。
また、pom.xml でパッケージ タイプを jar に指定できるようにしたいと考えています。
つまり、project.clj で groupId とパッケージング プロパティを設定して、これらのプロパティを含む pom.xml を生成するにはどうすればよいでしょうか。
clojure - LeinをJFreeChartとDejcartesで動作させるにはどうすればよいですか?
Leinをclojureで使用する方法を理解し、Win7x64に正しい.jarファイルをダウンロードする方法を理解しようとしています。具体的な例として、JFreeChartとDejcartesを使おうとしています。
私の質問は一般的なものであり、JfreeChartに固有のものではありません。私は基本的に、特定のパッケージを使用する例を見るのと、そのパッケージをlein経由で利用できるようにするのとの間のギャップを埋める方法を理解していません。うまくいけば、誰かが他のパッケージにも適用できる方法で答えることができます。
次のリンクを参照してください:https ://github.com/markmfredrickson/dejcartes/blob/master/Readme.txt 私のproject.cljは次のようになっています(この投稿の最後の2行をコメントアウトしています)。
Dejcartes
(import '(org.jfree.chart chartframe))
のreadme.txtで使用されているので、JFreeChart用の.jarファイルが必要だと思います。[org.jfree/chart "1.0.13"]
project.cljを入力しましたが、lein deps
次のように文句を言います。.jarファイルを直接ダウンロードする必要があると思いますが、.jarファイルを取得したら、それをクラスパスに配置するようにleinを誘導して、emacsなどを使用してlein swankできるようにするにはどうすればよいですか?
Dejcartesの例では使用しているので、project.clj
(require '[com.markmfredrickson.dejcartes :as chart])
に入れます。[com.markmfredrickson/dejcartes "1.0.0"]
これは、実行するとダウンロードを開始するように見えますlein deps
が、同じようにチョークします。(clojars)からダウンロードしているとされるリポジトリの1つには、大きなリストにDejcartesが表示されていません。LeinにDejcartesをダウンロードさせるにはどうすればよいですか?
最後に、パッケージの使用を開始したい場合、leinに最新バージョンを自動的に検索させるにはどうすればよいですか?これについては何も見ていません。すべてのproject.cljの例は、バージョンをハードコーディングしているようです
"1.0.2"
。
どうもありがとう
マイケル
emacs - leiningenを使用したclojure用のemacs/slime/swankのセットアップ
短いバージョン:leinswankを使用してswankサーバーを起動するときにMxslime-connectまたはMxclojure-jack-inを実行するとエラーが発生します。
Ubuntu10.10でemacs24.0.50.1を使用しています。ELPAのemacsに次のパッケージをインストールしました:clojure-mode、paredit、slime、slime-repl
githubからleiningenをインストールしてクラスパスに追加し、実行しました
lein plugin install swank-clojure 1.3.3
。その後、新しいディレクトリ〜/ tmp /を作成し、そこにcdして実行しました。
これで、lein new test-project
すべてが正常にセットアップされたようです。次に、emacsで/tmp/new-project/project.cljを開き、次のように変更しました。
その後、/ tmp / new-projectフォルダーに戻り、実行lein deps
しlein swank
て依存関係をダウンロードし、出力を提供するswankサーバーを起動します。
emacsに戻ると、swankサーバーに接続するのに問題があります。core.cljファイルを開いて実行しようとしましM-x slime-connect
たが、エラーが発生します。
これにより、swankサーバーが実行されていないか、サーバーを表示するために実行する必要のある構成がいくつかあると思います。また、(同じファイルを開き、project.cljを開いて)M-x clojure-jack-in
プロジェクトフォルダーでclojure REPLを開始しようとすると思いますが、次のようになります。
私はemacsパッケージとleinセットアップについてhttp://matthias-schneider.org/docs/clojure-setup/からの指示に従い、 http: //riddell.us/ClojureSwankLeiningenWithEmacsOnLinux.htmlからのテスト構成の指示に従い始めました。 Mxスライム接続でREPLを開くのに問題がありました。
更新:
〜/ tmp / test-projectを削除し、emacsと/.emacs.d/elpa/パッケージをアンインストールし、emacsを再インストールし、clojure-modeとpareditパッケージを再インストールし、〜/.leinを/binにコピーして、パスの問題がないことを確認しました(以前は/.leinまたは/.lein/binをパスに含める必要があるかどうかわからない)。/.lein/bin/swank-clojure
実行してからemacsを開き、project.cljを開いて試してみましM-x slime-connect
た。これにより、ホスト(ローカルのデフォルト)、ポート(4005のデフォルト)が要求され、swankに接続すると、swankとslimeのバージョンが異なる(yまたはn)yの場合、ミニバッファはを与えerror in process filter: Lisp connection closed unexpectedly
ます。実行したターミナルで/.lein/bin/swank-clojure
、次のJavaエラーが表示されます。
更新:
解決しました。emacsをアンインストールして、/ elpa /内のパッケージだけでなく、/。emacs.d/をすべて削除する必要がありました。再インストールした後、私はclojure-modeパッケージのみを取得し、slimeまたはslime-replは取得しませんでした。これで、接続しM-x clojure-jack-in
て作業を行う準備ができました。
build - Leiningenは動作するuberjarの構築に問題があります
Leiningenを使用してClojureプロジェクトを構築しようとしています。次のようにして、uberjarを作成することに成功しました。
前提条件:
- project.cljファイルは依存関係をリストします
:main my-project.core
project.cljで-main
関数を含むcore.cljファイル(:gen-class :main true)
core.cljで
手順:
- 走った
lein test
; 失敗せずに完了 - 走った
lein deps
; 正常に完了しました - project.cljのディレクトリから:rain
lein uberjar
- これにより、My-Project-1.0.0-SNAPSHOT-standalone.jarとMy-Project-1.0.0-SNAPSHOT.jarの2つのjarファイルが作成されました。
- を実行し
java -jar BioClojure-1.0.0-SNAPSHOT-standalone.jar
たため、次の例外が発生しました。
スレッド"main"の例外java.lang.SecurityException:マニフェストのメイン属性の署名ファイルダイジェストが無効です
この問題に関する私の研究は実を結びませんでした。 どうやら、それは良い解決策のない既知の問題です。そこの答えがわかりません。
uberjarを機能させるには何をする必要がありますか?
- 問題の原因となっている依存関係を特定しますか?
- プロジェクトから依存関係を削除しますか?
- プロジェクトを他の方法でコンパイルしますか?
- パッチライニンゲン?
- 提案されたコマンドを使用します:(
zip *-standalone.jar -d META-INF/DUMMY.SF
これが何をするのかわかりません) :uberjar-exclusions
project.cljファイルで何かをしますか?(もしそうなら、何?)
Leinおよびjavaバージョン:
更新:提案されたコマンドを実行すると、次のようになります。