.classpathおよび.project-バージョン管理にチェックインするかどうか?


87

依存関係のツリー内の複数のモジュールで構成されるオープンソースのJavaプロジェクトを実行しています。これらのモジュールはすべて、Subversionリポジトリ内のサブディレクトリです。私たちのプロジェクトの初心者にとって、Eclipseでそれらすべてを手動で設定するのは大変な作業です。

すべての開発者がEclipseを使用しているわけではありません。それでも、初心者が始められるように、.classpathファイルと.projectファイルをチェックインすることを検討しています。これは良い考えですか?それとも、それらのファイルで絶え間ない競合が発生しますか?プロジェクトを日食で簡単にセットアップできるようにする別の方法はありますか?


回答:


65

プロジェクトファイルをバージョン管理下に置いていますか?」で述べたように、間違いなくそうです

「それをロードし、セットアップし、行きなさい。」

しかし...これは実際には、ビルドパスが相対パスをサポートする最近のEclipse3.5設定にのみ当てはまります。

ビルドパスは相対パスをサポートします


それはASとEclipse3.6は、良いだろうパス変数の相対パスサポートではLinked Resources

相対パスを持つパス変数
(3.6M5以降)


2
うわー、私は彼らがこれを追加したことを知りませんでした...私たちにいくつかの悲しみを救ったでしょう
ウリ

この回答に関連する画像はオフラインのようです。
vkraemer 2011年

1
@vkraemer:本当です。これらの2つの画像を復元しました。最初の画像はarchive.eclipse.org/eclipse/downloads/drops/R-3.5-200906111540/…からのもので、2番目の画像はdownload.itemis.com/mirror/eclipse/R-3.6からのものです。-201006080911./…
vonC 2011年

17

絶対にありません-Subversionを介してプロジェクトファイルを配布することは一般的にひどい考えです。特に誰かが奇妙な方法でそれらを変更するかもしれないので。プロジェクトのドキュメントの良いページは、はるかに良いアイデアです。私たちのプロジェクトには、多くのモジュールと複雑なセットアップもあります。IntelliJ、Eclipse、NetBeansなどの各ポピュラーIDEでプロジェクトを開始する方法を説明するConfluenceページを設定しました。SubversionのREADMEファイルには同じ情報が含まれています。


31
同意できません。私の経験から、これらのファイルをチェックインして、チェックアウトをできるだけ簡単にするのは良いことです。誰かが奇妙な方法でそれらを変更する可能性がありますか?誰かが...いくつかの奇妙な方法で、あなたのコードを変更する可能性があります
アルネドイツ

アルネ、コメントではなく、答えを出すべきです。
amarillion 2010年

5
IDEのプロジェクトファイルは、実際にはプロジェクトの一部ではありません。配布したい場合は、ああ、私が言及した記事に添付してください。通常、チームの全員がリポジトリ内のファイルを変更できますが、重要なドキュメントノードなどに新しいファイルを添付できるわけではありません。クラスパスとプロジェクトファイルを無視して、必要のないときにコミットするのを忘れがちです。それらをSubversionに保持している場合でも、確実にどこかに保持する必要があります...
Bozhidar Batsov 2010年

8
-1、これ以上異議を唱えることはできませんでした。プロジェクトの設定は、プロジェクトでの日常業務の重要な部分です。誤って間違った設定をチェックインすることの欠点は、全員を自動的に最新の状態に保つことの利点よりもはるかに小さいです。結局のところ、いつでも簡単に以前のバージョンに戻ることができます。
Michael Borgwardt

7
誰もが意見を述べる権利があります。実際のところ、そもそもEclipse(または他のIDE)のプロジェクトシステムに依存するプロジェクトを作成することは決してありません... Mavenは究極のプロジェクト理解ツールであり、IDE固有のセットアップを廃止します。ところで、現在の設定に問題があることに気づき、前のリビジョンに戻る時間は、新しい設定を自分で調整する時間と異なる可能性はほとんどありません。少なくとも私の会社では、大きな変更の後にユーザーの介入が必要な場合、チームの全員に電子メールで通知が届きます。
Bozhidar Batsov 2010年

10

私は反対票を投じますが、それは私が通常これらのファイルをMavenから生成するためです


m2eはすべてではありませんが、ほとんどのことを行います
Junchen Liu 2016

6

私の経験では、純粋にローカル設定が関係する限られたケースを除いて、すべてがソース管理されている必要があります。ソース管理の法則は、押し込まれたものはすべて、引き出した人によって機能することが期待されるべきであるというものです。残念ながら、日食はしばしばこのようなものを引き起こします.classpath

    <classpathentry kind="con" 
      path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.launching.macosx.MacOSXType/Java SE 7"/>

したがって、私のMacではこれは機能し、Macの誰かが同じJREを持っているかもしれませんが、これは他の人には機能しません。

また、これを回避する簡単な方法はありません。Eclipseは常にそれを追加します。バージョン管理を行うlibフォルダーにサードパーティのJARがいくつかあるため、.classpathファイルをそこに入れたいので、新しい開発者がそれらを取得する必要がないように、そこに残します。 。管理対象システムに移行していますが、管理対象と管理対象外の依存関係がチェックインされています。つまり、すべての開発者は、2つのディレクトリが自分.classpathのにあることを確認する必要があります。ただし、プルするたびにJREを修正し、コミットするたびに.classpathを変更するよりも優れています。

ただし、Eclipseは他にもいくつかの優れた機能を提供します。.projectファイルは通常、インスタンス間で同じになるため、それを含めます。ただし、Eclipseのソース管理で最も優れているのは、実行構成の設定です。[構成の実行]ダイアログの[共通]タブで、構成を保存して、デバッグと実行のお気に入りリストの下に同僚に表示されるようにします。私にとっては、たくさんの.launchファイルが.settingsディレクトリにあるので、私たち全員がそれらを使用できます。

だから私は言います:.settingsディレクトリは起動設定のソース管理に入ります(* .prefsを除く)

.classpath 外に出る

.project 入ります。


これは、JRE / JVMの実行環境を使用している場合でも当てはまりますか?
mr_and_Mrs_D 2013年

5

これらのファイルをチェックインして、新しいユーザーの開始をできるだけ簡単にします。せいぜい、ユーザーはプロジェクトをチェックアウトし、追加の知識がなくてもプロジェクトを実行できる必要があります。このファイルのルールは、プロジェクト内の他のファイルの場合と同じです。注意して処理してください。ソースコードに絶対パスを配置しないでください。構成ファイルに配置する必要があります。

プロジェクトが最初から実行されるようにファイルがチェックインされている場合、ファイルを変更するための力はそれほど大きくないはずです。


5

ファイルに絶対パスや、単一の開発者の環境に直接結び付けるその他のデータが含まれていない場合は、ファイルをSubversionにチェックインすることをお勧めします。

ファイルに絶対パスなどが含まれている場合は、READMEの方が適しています。


2

はい、必ずチェックインしてください。ただし、パスの依存関係を文書化し、可能であれば絶対パスを避けてください。

それらをチェックインしない場合、プロジェクトをチェックアウトする人は、これらの設定をすべて再作成する必要があります。これは煩わしく、エラーが発生しやすい可能性があります。

一部の複雑なセットアップは、これらのファイルを生成するスクリプトによってより適切に処理される場合がありますが、通常は、単にチェックインする方が適切です。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.