4

.gitignoreGithubに投稿された多くのプロジェクトが、IDEに関連する制御ファイルを明示的に除外したファイルを特徴としているのを見てきました。これらの制御ファイルは、プロジェクトとその依存関係を定義するために広く使用されています。これらは.sln、.NETまたは.projectEclipse用です。

IDE中立性(開発者を特定のIDEにバインドしない)を達成することが一般的に良い原則であることに同意することを考えると、なぜこのプラクティスが広く適用されているのか、または良いプラクティスと見なされているのかを尋ねたいと思います。

それどころか、これらの制御ファイルは、プロジェクトの依存関係、構成、または複数の構成のコンパイル変数を指示することがよくあります(これは、.csprojたとえばファイルの場合です)。

Eclipseファイルを無視するオープンソースプロジェクトをたくさん見ましたが、これまでのところ、プロジェクトファイルなしで開発環境をセットアップすることは不可能でした(既存のコードからプロジェクトを作成したり、新しいプロジェクトを作成してコードをインポートすると、常にたくさんのコンパイルエラーが発生します)。

プロジェクトファイルがリポジトリに存在する場合、「コードをダウンロードし、プロジェクトをインポートして、ソースをコンパイルする」という開発環境をセットアップするのは非常に簡単ですが、開発者を特定のIDEにバインドすることは明らかです(それは面白くありません)。 。

プロジェクトファイルの標準化または移行は、質問の範囲外です。

では、外部の貢献者の観点から、Githubからソースコードをダウンロードしたプロジェクトの作業およびコンパイルプロジェクト環境をどのように構築するのでしょうか。(必要に応じて、すべてのサブモジュールのクローンを作成した後)

Eclipseにインポートし、分析して少し変更したいプロジェクトの例を1つ選びます。これが、ここにあります。

4

3 に答える 3

7

csprojファイルはIDE固有ではなく、プロジェクトの基本的なプロジェクト構造とビルドステップを形成することに注意してください.NET。SharpDevelopのような完全に異なるIDEに切り替えた場合でも、プロジェクトを実行するにはそれらが必要です。したがって、一般的に、それらはファイルに含まれるべきではありません.gitignore。ユーザーまたはIDE固有のもののみを除外する必要があります。

于 2013-01-28T09:01:04.783 に答える
2

一部の人はそれらのIDEを使用しませんが、他の人は構成にいくつかの調整を加えているためです。これらのIDE固有のファイルは、各コンパイル手順の後であまりにも速く、あまりにも役に立たないという事実は言うまでもありません。

IDEファイルに依存するのではなく、Makefile、Antファイル、またはその他の同等のビルドシステムを配置するのが最善です。

もちろん、一部のエラーはライブラリの欠落が原因で発生します。自分でインストールする必要があります。リポジトリにIDEファイルがあるかどうかは関係ありません。

私が通常行うこと:プロジェクトのクローンを作成し、ビルドスクリプトが存在しない場合は作成し、.git/info/excludeマシン固有になるために追加します。

于 2013-01-28T08:59:53.860 に答える
2

Javaの世界には非常に多くのビルドシステム(Maven、Gradle、SBTなど)があります。IDE用のプロジェクトファイルを生成するのは簡単です。これにより、ビルドアーティファクトと見なすことができるため、バージョン管理にチェックインする必要がなくなります。

さらに、さまざまな人がさまざまなIDEを使用する混合チームでは、誰かがEclipseプロジェクトファイルを更新すると、IntelliJを使用している人も、コンパイルの問題が発生するため、突然プロジェクトファイルを更新する必要があります。これらのファイルを生成するビルドシステムを使用するのに対し、ファイルが常に最新であることを確認してください。たとえば、Mavenを使用すると、M2EclipseプラグインをEclipseに追加したり、IntelliJを使用したりするときに、ユーザーの操作なしでこれを実行できます。

だから私はいつもプロジェクトファイルをに追加することを提唱しています.gitignore...

于 2013-01-28T11:42:13.110 に答える