2

Git と GitHub は初めてですが、何年も Eclipse を使用しています。いくつかの個人的な Java プロジェクトを GitHub にアップロードしたいのですが、それらは依存関係の複雑なツリーを形成し、それらはすべて Eclipse プロジェクトの依存関係を使用して参照されます (つまり、各プロジェクトはそのクラスパスに他の Eclipse プロジェクトを持っています)。可能であれば Maven の使用を避けたいと思います (私は仕事で使用していますが、遅く、バグが多く、苦痛であり、GitHub とは別に、どこかで独自のリポジトリを実行する必要があることは言うまでもありません)。ユーザーが Eclipse を使用して、または使用せずに (おそらく Ant ビルドファイルなどを使用して) プロジェクトをコンパイルできるようにするかどうかを選択します。

私の質問は: 他のリポジトリに依存する GitHub リポジトリをアップロードする標準的な方法はありますか? サブモジュールが私が探しているもののようですが、それは他のすべてのプロジェクト内のすべてのプロジェクトの複製を作成しますか? それとも、これを適切に行うための最良/唯一の方法は Maven ですか? ユーザーがプロジェクトの構造をあまり壊さずに、プロジェクトのすべての依存関係をダウンロードしてコンパイルする準備がgit cloneできたらいいのにと思います。ant build

このセットアップの例: A、B、C の 3 つの Eclipse プロジェクトがあります。B と C は A のクラスパスにありますが、A、B、C はすべて別の Git リポジトリにあります。ユーザーが A を実行できるようにしてgit cloneant buildこのプロセスのある時点で、A がコンパイルできるように B と C を自動的にダウンロードできるようにしたいと考えています。

4

1 に答える 1

0

質問を正しく理解している場合は、プロジェクトを複数のリポジトリに分割し、自動メカニズムを使用して、gitcloneまたはビルドフェーズのいずれかですべての依存関係を推移的に取得します。このため、この依存関係情報を構成のどこかにエンコードする必要があります。

この問題には基本的に3つの解決策があります(ビルドテクノロジに関係なく)。

  1. Gitサブモジュールは、この情報をgitリポジトリにエンコードします。このように、依存関係なしでプロジェクトをチェックアウトすることはできません。ただし、これにより、前述のように、同じリポジトリが複数回ダウンロードされる可能性があります。

  2. 別の方法は、ビルドシステムでこの情報をエンコードすることです。この場合、リポジトリごとに個別のビルドがあり、ビルドされたすべてのバイナリは共通のリポジトリに配置されます(MavenまたはEclipse p2リポジトリ、あるいは中央のFTPストレージでも可能です)。依存関係は、ビルド中にこの中央リポジトリから照会されます。

  3. または、必要なすべてのソースプロジェクトが利用可能であることをユーザーに確認して(Eclipseでは、この理由でチームプロジェクトセットを使用できます)、それらを一緒にビルドすることもできます。

私の経験では、ソリューション2または3が最も一般的なものです。あらゆる種類のリポジトリをセットアップできる場合は、すべてのプロジェクトを個別に構築して再利用できるため、これが最善の方法です(これは、プラグインプロジェクトにとって大きなプラスです)。ソースのダウンロードにはHTTPリクエストのみが使用されるため、p2リポジトリはSVNまたはGitでホストできると確信しています。Mavenリポジトリーでも同じことが可能だと思いますが、そのようなリポジトリーが機能しているのを見たことがありません。

したがって、p2リポジトリーを構築し(Antで実行できますが、Maven Tychoではより単純に見えます)、プロジェクトをいくつかのリポジトリーに分割することをお勧めします。

于 2012-11-18T18:45:53.513 に答える