2011-02-03 8 views
15

私はClojureを初めて使っていますが、私はそれを学んでいます。私は、必ずしもプログラマーではないエンドユーザーにClojureプログラムをパッケージ化して配布する最良の方法を知りたいと思います。 Rubyでは、ユーザにgem install [program name]でプログラムをダウンロードさせてから、プログラムを実行するコマンドを実行するように指示できます。 Clojureプログラムと同等のものは何ですか?Clojureプログラムをプログラマー以外の人にどのように配布しますか?

答えて

8

私はLeiningenを使用しています。uberjarコマンドを使用して、実行可能な実行可能なjarファイルを作成することができます。ユーザーはこのファイルをダブルクリックできます。参考文献:http://zef.me/2470/building-clojure-projects-with-leiningen

+0

lein uberjarは小さなものには最適ですが、特に大規模なプロジェクトでは実現できません。 Jarファイルは、(必然的に)拡張、結合、再ジャーリングすることはできません。順序はパスの競合の場合は任意ですが、マニフェストは適切にマージするのが難しい(または不可能な)こともあります。是非、uberjarで始めることをお勧めします。 –

+1

あなたのユーザーの技術レベルにもよりますが、あなたのプロジェクトでうまくいけば、uberjarの利便性に勝るものはありませんが、lein-tarも適切です:https://github.com/technomancy/lein-tar – technomancy

-2

Clojars(http://clojars.org/)は、Clojureライブラリのより大きなリポジトリです。

Leiningenプロジェクトやその他のMavenベースのプロジェクト管理ツールと完全に機能します。

+1

Clojarsは、質問に必要とされるエンドユーザの仕組みのインストール/配布を提供していません。 – mac

2

ライブラリを配布している場合はClojarsが優れていますが、それがエンドユーザーにとって最適なオプションかどうかはわかりません。

既にMavenを使用している場合は、すべての必要なクラスを含むuberjarを作成することをお勧めします。よりエンドユーザフレンドリーにしたい場合は、IzPackのようなものを使ってこのjarファイルからインストーラを作成することができます。 ClojureプログラムはJavaプログラムであることを覚えておいてください。そのため、Javaのすべての配布オプションもClojureにとって有効です。

1

lein uberjarは、ほとんどClojureの小さなアプリケーションには効果的ですが、必要なライセンスなど、多くのJavaライブラリを使用している場合は拡張できません。 Maven Clojureプラグインを使用する場合は、恐ろしく恐ろしいMavenアセンブリプラグインを利用して、必要な最終的な構造を構築することができます。

また、Leiningenプラグインを使って同様のことを行うこともできます。そんなことがあるかどうか分からない。

関連する問題