多くの共有コードを持ち、いくつかのバージョンを維持する必要がある製品がいくつかあります。
これを処理するために、多くの Eclipse プロジェクトを使用します。一部にはライブラリ jar が含まれており、一部には共有ソース コードが含まれています (いくつかのプロジェクトでは、多数の依存関係を持つ巨大なヒープを取得することを回避しながら、すべてをゼロからコンパイルして、ソースとバイナリが確実に実行されるようにします)。一貫性のある)。これらはすべてのプロジェクトを CVS から直接引き出して、完全に準備されたワークスペースを残すことができるため、projectSet.psf でそれらを管理します。Ant ビルドを直接行ったり、maven を使用したりすることはありません。
これらすべてのプロジェクトとそのさまざまなバージョンを継続的インテグレーション ツールに配置できるようにしたいと考えています。私は Hudson が好きですが、これは単なる好みの問題です。つまり、プロジェクトを自動的にチェックアウトして、新しいワークスペースを作成し、各プロジェクトのプロジェクト ファイルで説明されているようにソース フォルダーをコンパイルします。ハドソンはプロジェクトを構築するためのそのようなアプローチを提供していないので、私はこれにアプローチする最善の方法は何かを考えてきました。
アイデアは
- projectSet.psf を理解し、cvs-checkout およびコンパイル タグにマップする ant プラグイン/コンバーターを検索または記述します。
- Eclipse 内から build.xml ファイルを作成し、それらを使用します。これを試してみたところ、結果が冗長で絶対的な場所であることがわかりました。これは、ファイルを必要な場所に配置する自動ツールには適していません。
- projectSet.psf を理解して構成を取得し、それを構築する Hudson プラグインを作成します。
- 弾丸を噛んで、何かが壊れたときはいつでも CI 構成を手動で作成および更新するだけです-私はこれが好きではありません:)
他の人の経験について聞きたいので、これにどのようにアプローチするかを決めることができます.
編集: 別のオプションは、Eclipse プロジェクトやプロジェクト セットについてよく知っている CI を使用することです。私たちは宗教的ではありません。これは、自分ですべてを行う必要がなく、実行するだけの問題です。クルーズコントロールはおそらくより良いオプションでしょうか? その他?
編集: ant4eclipse には「チーム プロジェクト セット」機能があることがわかりました。 http://ant4eclipse.sourceforge.net/
編集: ant4eclipse および ant-contrib ant 拡張機能を使用して、Eclipse 3.5M6 の Runnable Jar 機能と同様の sjgned 実行可能 jar ファイルとして完全なワークスペースを構築しました。最初の空のワークスペースを作成し、ProjectSet を抽出するために、まだ Eclipse に依存しているので、それが次のハードルになります。
編集: デュアル構成、つまり、ハドソンが CVS (同じタグを持つ必要がある) から ProjectSet.pdf ファイルにリストされているのと同じモジュールのセットを抽出し、それらを隣り合わせに配置することになりました。次に、ant4eclipse は、メイン モジュールに埋め込まれた projectSet.psf ファイルとうまく連携します。警告: Hudson のモジュール リストは手動で更新する必要があります。その後、Hudson が以前よりも多くのプロジェクトがあることを「発見」できるように、手動でワークスペースをクリーンアップする必要があるようです。これで数か月は問題なく動作しましたが、ant ファイル内ですべてを動作させるのは非常に面倒でした。
編集: Hudson の CVS プロジェクトで ant4eclipse と Ctrl-A、プロジェクト パネルの Ctrl-C と Ctrl-V を使用した「チーム プロジェクトの使用」は、私たちが一緒に暮らすのに十分にうまく機能することが判明しました (成熟したプロジェクトの場合、これは変更されることはほとんどありません)。私は ant4eclipse 1.0 のリリースを待っています - http://www.ant4eclipse.org/、現在マイルストーン 2 にあります - 自家製の機能を ant4eclipse のものにどれだけ置き換えることができるかを確認します。
編集: ant4eclipse は M4 の 20100609 の時点であるため、http ://www.ant4eclipse.org/node?page=1 のスケジュールは多少ずれています。
編集: ant4eclipse アプローチを長期間使用した後の私の結論は、ビルド スクリプトが非常に危険になり、維持するのが難しいということです。また、Team ProjectSet 機能 (ant4eclipse がプロジェクトを見つけるために使用する) は、CVS ベースのリポジトリではうまく機能しますが、git に移行した後では機能しません (これはそれ自体が大きなことです)。新しいプロジェクトは、Jenkins で十分にサポートされているため、maven に基づいている可能性が最も高いでしょう。