私はClojureを初めて使っていますが、私はそれを学んでいます。私は、必ずしもプログラマーではないエンドユーザーにClojureプログラムをパッケージ化して配布する最良の方法を知りたいと思います。 Rubyでは、ユーザにgem install [program name]
でプログラムをダウンロードさせてから、プログラムを実行するコマンドを実行するように指示できます。 Clojureプログラムと同等のものは何ですか?Clojureプログラムをプログラマー以外の人にどのように配布しますか?
15
A
答えて
8
私はLeiningenを使用しています。uberjar
コマンドを使用して、実行可能な実行可能なjarファイルを作成することができます。ユーザーはこのファイルをダブルクリックできます。参考文献:http://zef.me/2470/building-clojure-projects-with-leiningen
-2
Clojars(http://clojars.org/)は、Clojureライブラリのより大きなリポジトリです。
Leiningenプロジェクトやその他のMavenベースのプロジェクト管理ツールと完全に機能します。
+1
Clojarsは、質問に必要とされるエンドユーザの仕組みのインストール/配布を提供していません。 – mac
2
1
lein uberjarは、ほとんどClojureの小さなアプリケーションには効果的ですが、必要なライセンスなど、多くのJavaライブラリを使用している場合は拡張できません。 Maven Clojureプラグインを使用する場合は、恐ろしく恐ろしいMavenアセンブリプラグインを利用して、必要な最終的な構造を構築することができます。
また、Leiningenプラグインを使って同様のことを行うこともできます。そんなことがあるかどうか分からない。
関連する問題
- 1. Pythonスクリプトをどのように配布しますか?
- 2. Managed DirectXをどのように再配布しますか?
- 3. Erlangはどのようにスケーラブルに配布されますか?
- 4. git(1人のプログラマーと1人のプログラマー、1人のデザイナー)によるウェブ開発ワークフロー
- 5. ソフトウェアの配布にはどのようなサービスを使用しますか?
- 6. Androidアプリからテスターに更新プログラムを配布しますか?
- 7. HTML5以外のブラウザにどのようにアップデートをプッシュしますか?
- 8. モジュールのCPANページからコア配布物にあるかどうかをどのように伝えますか?
- 9. minibatch kmeans(scikit-learn)の処理をどのように配布できますか?
- 10. NetBeans IDEでClojureをどのようにデバッグしますか?
- 11. github、特にプライベートリポジトリで正しく動作するように配布された人はいますか?
- 12. .pycファイルの配布にはどのような制限がありますか?
- 13. inode番号はLinuxのルートファイルシステムでどのように配布されますか?
- 14. どのようにUI以外のデリゲートやイベントを使用しますか?
- 15. Clojure ^:constはどのように機能しますか?
- 16. HBaseはどのようにしてMapReduceの新しいリージョンをクラスタ全体に配布しますか?
- 17. Windows上のnode.jsで外部プログラムをどのように実行しますか?
- 18. 400人のユーザーアカウントをどのようにhtdigestしますか?
- 19. Gdiplus(GDI +)をどのように再配布するのですか?
- 20. Clojureのソースコードをどのようにリファクタリングできますか?
- 21. HTML5以外のJavaScript HSVカラーピッカーはどのように機能しますか?
- 22. 私のMacアプリを友人に配布する
- 23. 配布のためにC++プログラムからPythonを呼び出す
- 24. クラスメソッドを使用して、UIManagedDocumentの複数の共有インスタンスをどのように配布しますか?
- 25. clojureで2つ以上の述語をどのように作成しますか?
- 26. テーブルにNULL以外の外部キーがある場合、どのようにケースを処理しますか?
- 27. Clojureの大きなプログラムでは、core.logicを実用的な方法でどのように使用しますか?
- 28. ドキュメントの欠如以外のClojure
- 29. どのように(人参)クラスタリングsolrで動作しますか?
- 30. 人はECB Emacsでどのようにデバッグしますか?
lein uberjarは小さなものには最適ですが、特に大規模なプロジェクトでは実現できません。 Jarファイルは、(必然的に)拡張、結合、再ジャーリングすることはできません。順序はパスの競合の場合は任意ですが、マニフェストは適切にマージするのが難しい(または不可能な)こともあります。是非、uberjarで始めることをお勧めします。 –
あなたのユーザーの技術レベルにもよりますが、あなたのプロジェクトでうまくいけば、uberjarの利便性に勝るものはありませんが、lein-tarも適切です:https://github.com/technomancy/lein-tar – technomancy