2011-11-14 14 views
2

私は、主に言語を実験するプロジェクトに着手する準備をしていますが、有用性のヒントもあります。 Erlangで書かれたサーバアプリケーションと、いくつかの言語のクライアントライブラリで構成されます。最初はJava、Ruby、Pythonでクライアントを書いてみたいと思います。実際の通信プロトコルはThriftです。多言語プロジェクト用のシステムを構築する

サーバーとすべてのクライアントライブラリを一度にビルドできるようなビルドシステムを探しています。各言語で単体テストを実行してから、何らかの形でリリース可能なアーティファクトをパッケージ化します各言語の "標準"。

Java用のJar、RubyGem、Python用のdistribute/setuptoolsのtarballを意味します。 Erlangにはおそらく何かがありますが、私はそれにまだ精通していません。また、各言語でさまざまなスリフトスタブを生成するために、Thriftコンパイラを実行できる必要があります。

最初のパッドはMavenです。 Mavenが必要なすべてを行うことができるのはかなり確かですが、それはJava中心的すぎるのではないかと心配し、追加する必要があるすべての新しい言語に対してたくさんの仕事を残します。

+0

Makeは、ビルド管理用に設計されたスクリプト言語の一種です。コンパイラ、リンカーなどに作業を委任します。コマンドラインからこれらの作業を行う方法がわかっている場合は、Makeで手軽に行うことができます。 – Beta

答えて

0

納品可能な成果物を作成するために各言語の要件が何であるかを知っておく必要があります。

ここからファイルをコピーして圧縮すれば、大部分のスクリプト言語をカバーできます。 しかし、カスタムパッケージングをサポートするためにプラグインを作成することになるかもしれません(複雑ではないので、ビルドシステムがないと良い選択ではありません)。

すべての言語でビルドシステムを強制して強制的にビルドシステムに適用しない場合があります。だから、利用可能な特定のビルドツールを使用し、それらを単純なスクリプトで包んで、それらを特定の順序でビルドさせるために(bamboo、jenkings/hudson、teamcityなどの)継続的な統合サーバーを使用して実行します)?

私はクロスレングスシステムを認識していません。

そのアプローチがよりスクリプト指向であるため、Gradleは柔軟性があります。

そしてhttp://eclipse.org/buckminster/がある - あなたはその方法に従っている場合だけ、完全性のために(haventははかなりの時間のために見ていた)

ヴェルナー

+0

私は周りを見回し、MavenにはErlangとPythonのプラグインがあります。おそらくルビー。私が使用しようとしている最初の数種類の言語については、これは「サポートの欠如を回避するためにはどのくらいの作業をしなければならないか」という問題を解決し、その理由でこの恩恵を授与しています。私は、Mavenが可能な限り最高だとは本当に満足していませんが、現時点で私の正確なユースケースには最高の利用可能なようです。 – Epcylon

0
"It will consist of a server-application, written in Erlang, 
and client-libraries in a number of languages. 
Initially I will want to write clients in Java, Ruby and Python. " 

よろしくMavenは良いです。それは実際に私の方法または高い方法の多くです。 参照:http://community.jboss.org/wiki/MavenVsGradle 多くの標準Javaプロジェクトでは、実際には非常に優れています。しかし、他のものを使用する必要がある場合は、非常に迅速にかなり複雑になります。

あなたの説明から、それは非常に迅速に複雑になる途中です。

gant(groovy + ant)とgradleを見ることをお勧めします。 gantやgradleから他のスクリプトを呼び出すことができます。 JPython、JRubyはあなたの友人になります。 Antには非常に便利な作業がたくさんあります。

Gantを使用して複雑なJava/C++/Cビルドプロジェクトを正常に実装しました。 Groovyスクリプトは強力で使いやすいスクリプトです。 Gradleは似ていて、いくつかの点でGantよりも強力です。

関連する問題