問題タブ [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.

0 投票する
1 に答える
432 参照

clojure - 正しいファイルシステム パスを特定する方法

public/staticいくつかの外部リソースをダウンロードし、Ringのディレクトリからアクセスできるようにする必要があるアプリケーションに取り組んでいます。

しかし..アプリケーションの静的ディレクトリにリソースを保存する際に問題がありring-jetty-adapterます。テスト サーバーと運用サーバーは Tomcat を実行しています。

:web-content "public"leiningen プロジェクトに追加し、プロジェクトpublicのルートにディレクトリを追加すると、http-agent とダック ストリームを使用したダウンロード機能があります。

REPL から Jetty を起動して を使用するsavepath: "public/my.file"と、ダウンロードしたファイルがディレクトリに正しく配置されますpublic。しかし、.warファイルを使用して Tomcatにデプロイするとpublic、アプリケーション コンテキスト パスの下ではなく、Tomcat ルート ディレクトリ内のディレクトリが検索されます。

HttpServletミドルウェア ラッパーを追加してコンテキスト パスを特定し、そこから正しい保存パスを作成しようとしましたが、にアクセスする方法や、アプリケーションがアダプターで実行されているかどうか、またはアプリケーションが下にデプロイされているかどうかを判断する方法が見つかりません。特定のコンテキスト。

ここでラッパー:

両方:servletとも:reqですnil

0 投票する
2 に答える
838 参照

emacs - Emacs内からleiningen replのロードを自動化するには?

Leiningen のスワンクと統合されたEmacs を使用しています。.clj ファイルの操作を開始する必要があるたびに、次のことを行う必要があります。

  1. emacs pack/my-ns.cljコンソールから実行します。
  2. タイプしM-x lein-swankます。
  3. バッファをコンパイルします。
  4. Clojure REPL では、名前空間を変更します。つまり、 type (in-ns 'pack.my-ns).

このプロセスを自動化して、コンソールなどから実行しemacs-clj pack/my-ns.clj、環境を使用できるようにするにはどうすればよいですか?

0 投票する
1 に答える
3245 参照

clojure - lein uberjar で生成された Jar が NoClassDefFoundError で失敗する

この project.clj を使用した単純な Web アプリがあります。

私のメインは次のようになります。

REPL を使用すると問題なく動作します。ただし、jarを生成しlein uberjarて実行しようとすると、次のようになります。

それはこの例外で死にます:

私は何を間違っていますか?それを機能させる方法は?

それが問題かどうかはわかりませんが、jar 内のファイル、clojure 自体、および Java ライブラリは .class ファイルとして展開されますが、すべての clojure ライブラリはプレーンな .clj ファイルとしてのみ存在することに気付きました。

0 投票する
2 に答える
11603 参照

clojure - leiningenを使用したコマンドライン引数

私は最近clojureから始めました、そして私は小さなプロジェクトを作成するためにleiningenを使用しています。leiningenをコマンドライン引数で動作させるのに問題があります。以下は私のsrc/project/core.clj

と私project.clj

を実行するlein run arg1 arg2と、次のエラーが発生します。

ただし、を実行してから実行するlein uberjarjava -jar project-1.0.0-SNAPSHOT-standalone.jar arg1 arg2、正しい出力が得られます。

開発中に毎回実行するためにuberjarを作成する必要があるのはあまり快適ではありませんが、より良い方法はありますか?

0 投票する
2 に答える
495 参照

java - Clojure で保護されたメソッドを拡張する方法

これを Clojure でどのように記述しますか?

vaadin srvletクラスをclojureで書こうとしています:

http://dev.vaadin.com/wiki/Articles/ClojureScripting

0 投票する
1 に答える
2308 参照

clojure - leiningen の既定のリポジトリとは何ですか?

Leiningen (https://github.com/technomancy/leiningen) は、project.clj で指定された依存関係を満たすために、いくつかの既定のリポジトリを調べます。

これらのリポジトリを参照して、leiningen ですぐに使用できるものを確認したいと考えています。これらのリポジトリとは何ですか。また、特定のバージョンの leiningen についてはどこで検索できますか。

0 投票する
1 に答える
1803 参照

clojure - ビルドプラットフォームに基づいて異なる依存関係を必要とするleiningenプロジェクトをセットアップするためのエレガントな方法は何ですか?

マルチプラットフォームのGUI開発を行うために、GTK + Clojure(GTKのJavaバインディングがWindowsに移植されていないように見えるため)からSWT+Clojureに切り替えました。これまでのところ、Linux用に構築されたuberjarを入手したという点で非常に優れています。

ただし、問題は、Windows用のuberjarを作成したいということであり、project.cljファイルを管理するためのクリーンな方法を見つけようとしています。

最初は、SWTライブラリを指すようにクラスパスを設定してから、uberjarをビルドすることを考えました。これには、jarを実行する前にSWTライブラリへのクラスパスを設定する必要がありますが、とにかく、ランチャースクリプトが必要になる可能性があります。ただし、leiningenは常に次のことを報告するため、このインスタンスではクラスパスを無視しているようです。

現在、project.cljは次のようになっています。

関連する行はそのorg.eclipse/swt-gtk-linux-x86行です。Windows用のuberjarを作成したい場合は、に依存する必要がorg.eclipse/swt-win32-win32-x86あり、別のuberjarをに依存する必要がx86-64あります。

私の現在の解決策は、ビルド環境ごとに異なるブランチを作成することproject.cljです。これは、セミを使用して1ガロンのミルクを提供するようなものですが、バージョン管理にバザールを使用しているため、分岐と繰り返しの統合が簡単です。project.linux.clj、、などを使用するのがより良い方法かもしれproject.win32.cljませんが、どのプロジェクト記述子を使用するかをleiningenに指示する方法がわかりません。

そのような環境を設定する他の(できればよりエレガントな)方法は何ですか?

0 投票する
2 に答える
1380 参照

unit-testing - UnicodeClojureユニットテスト出力

ASCIIシーケンスをUnicode文字に変換するコードを単体テストすると、Clojureテストの出力に問題があることがわかりました。

私の端末がUnicode文字を出力できることをテストしました(テストファイルをカタログ化することにより)。これは正常に機能するため、問題はleiningen、Clojure、またはclojure.testに何らかの形で関連しているようです。

テストの例を次に示します(ユニコードのギリシャ語セクションを使用します。ギリシャ語拡張も使用しますが、同じ問題が当てはまると思います)。

入力にスペースがないために失敗することを意味します。からの出力lein testは次のとおりです。

私はここで何が間違っているのですか?これはターミナルエミュレーションの問題ですか、それともclojureに関連する問題ですか?Slime / swank/emacsを使用してREPLでコードを実行するときに同じ問題が発生します。emacsのREPLは、Unicode出力の疑問符のみを出力します(ただし、emacsはUnicodeをかなり理解できます)。

ターミナルとiTerm(OS X)でこれを実行してみましたが、同じ結果になりました。

0 投票する
2 に答える
2831 参照

clojure - Clojure でプロジェクトをインストールし、クラスパスに配置する

criteriumをインストールしたばかりで、repl や他のプロジェクトから使用できるようにしたいと考えています。インストールしたライブラリをどこからでも使用できるように、Java クラスパスを拡張するにはどうすればよいですか?

今後取り組むすべてのプロジェクトで簡単に機能する回答をいただければ幸いです。私は leiningen を使用しており、実行するとこれが行われると思いますがlein install、何か間違っているか、それでは十分ではありません。

0 投票する
2 に答える
326 参照

macos - ClojureREPLはOSXではdoseq出力の印刷でスタックしますが、Linuxではスタックしません

コマンドを使用して、Snow LeopardOSXマシンとUbuntuLinuxボックスの両方でClojure1.2を実行していますlein repl。enliveチュートリアルhttps://github.com/swannodette/enlive-tutorial/を実行しています

「ThirdScrape」チュートリアルに到達して次のコマンドを実行すると、次のようになります。

Ubuntuでは期待どおりに動作しますが、OS Xでは、最初のストーリーのみを出力し、数値、(println "hello world")などの式を入力した後にのみ、残りのストーリーを出力します。バッファが出力を完全にフラッシュしていないかのように、REPLがOSXで動作している方法について何か奇妙なようです。

doseq関数でマクロが使用されていることに気付きましたprint-stories。だから私がこれを行うと:

私はOSXでこの出力を取得します:

これは最初のアイテムにすぎません。次に0(または任意の有効な式)を入力してReturnキーを押すと、残りの出力が得られます。

また、この動作に一貫性がないことにも気づきました。時々、何も出力されないので、タイプする0か何かでそれをフラッシュして入力することができます。場合によっては、すべての出力が適切にフラッシュされます。

誰かアイデアはありますか?