プロジェクトにEclipse、Subversion、Mavenを使用しようとしていますが、次のファイルは絶対にチェックインしないように言われています。
target/
.classpath
.project
.settings
しかし、私がそれらをチェックインせず、他のプロジェクトがEclipse内からプロジェクトをチェックアウトした場合、Eclipseはそれがどのタイプのプロジェクトであるかを知りません。
どのように働きますか?
EclipseにはMaven用のプラグインがあります。それはm2eclipseと呼ばれていると思います。インストール後、[Mavenプロジェクトからインポート]を選択し、プロジェクトが存在しないpom.xml
場合でも、プロジェクトをEclipseにインポートするものを選択できます。したがって、それらをsvnにコミットする必要はありません。これには、IDEの中立性の利点があります。チームの他のメンバーは、心配することなくIntellijIDEAまたはNetBeansを使用できます。.project
.settings
また、MavenにはEclipse用のプラグインがあります。ある場所に移動しpom.xml
、ターミナルを開いて入力mvn eclipse:eclipse
すると、自動的に生成さ.project
れ.settings.
ます。ただし、最初のオプションをお勧めします。
私はEclipse、Maven、Gitで同じ問題を抱えていたので、おそらくそれはあなたにとって役立つでしょう:
これが私がEclipseでこれを処理する方法です。それが十分に明確であることを望みますか?ところで、クラスパスなどは他のマシンでは異なる可能性があるため、これらのファイルをチェックインしないでください。
.classpathと.projectをチェックインしますが、あまり頻繁にはチェックインしません。プロジェクトに取り組んでいるすべての人が、十分に近いバージョンのEclipseを持っていることを確認する必要があります(特定のプラグインとEclipse機能が含まれています)。ほとんど誰もそれらのファイルをチェックインせず、更新時にバージョン管理からそれらのファイルをほとんど比較して手動で更新するだけで、非常に異なるバージョンのeclipseを使用できる場合があります。
チェックインしない場合は、全員が空のプロジェクトを作成してから、ソースファイル(およびすべてのバージョン管理ファイルまたはフォルダー)をプロジェクトにロードする必要があります。注意が必要な場合は、これら2つのファイルをコピーしてから、オプション設定をだましてそれらを一致させることができます。
Mavenは、.classpathファイルのほとんどのコンテンツを処理するため、これに大いに役立ちます。
これらのファイルをチェックインしない主な理由は、IDEがローカルの開発環境に合わせてこれらのファイルに変更を加える可能性が非常に高いためです。誰もが常に自分のバージョンをコミットしている場合、これはおそらく競合を引き起こし、したがってプロジェクトを「壊す」でしょう。
とは言うものの、Eclipseにはm2eclipseプラグインを介した適切なMaven統合が必要です(最近はデフォルトで組み込まれている可能性があります)。
Mavenの背後にある考え方の一部はまさにこれです-再現性のあるビルドはクロスプラットフォーム、クロスIDEなどです-したがって、プロジェクトをビルドするためにそのようなIDE固有のファイルは必要ありません。m2eclipseプラグインを使用してプロジェクトをインポートすると、問題がうまく整理されるはずです。
m2eclipse
他のメンバーがプロジェクトをチェックアウトし、それが機能しない場合は、Eclipseを使用せずにMavenプロジェクトを個別にチェックアウトし、プラグインを使用して既存のMavenプロジェクトとしてEclipseにインポートできます。これは問題なくきれいに動作します(少なくとも私にとっては)。
チームの全員がEclipseを使用していて、プロジェクトが他のものを使用しないことに同意した場合は、それらのファイルをチェックインすることもできます。ただし、誰かがIntelliJ、他のツールのNetbeansを使用している場合、またはEclipseは非常にカスタマイズされています。
場合によります。
Mavenのドキュメントには、「.project / .classpath / .settings /はpom.xmlから再生成できるため、チェックインしないでください」などと明示的に記載されています。文の後半部分(「再生可能」)は正しくないため、文の最初の部分(アドバイス)は、状況に応じて、OKの場合とそうでない場合があります。Eclipse構成のすべてのビットをpom.xmlから再生成できるわけではないので、私の意見では、決定は、それから得られる利益と特定のIDEに関連付けられることの間のトレードオフに基づいています。
ですからそれは状況次第です。
通常、各開発者が異なるIDEと異なるバージョンのIDEを使用する「コミュニティプロジェクト」の場合、これらのファイルをチェックインしないことをお勧めします。そうしないと、開発者がIDEとIDEのバージョンを使用しないのは面倒です。
大規模な「企業プロジェクト」の場合、IDEとIDEのバージョンは開発者が自由に選択することはできませんが、プロジェクト管理者がしっかりと決定します。コンパイラ(1)、コードのフォーマット、検証ルール、警告とエラーの構成、カスタムの社内プラグイン構成など、多くの指示があります。それらの多くはpom.xmlで設定できません(MavenはIDEではなく構築ツールであるため、設定する必要もありません)。したがって、この場合、私はそれらのファイルをチェックインし、準拠している開発者を非難することをお勧めします。なぜなら、彼は指示に従わないようにしているからです。
(この場合、企業プロジェクトのプロジェクト管理には「口述」と「非難」の権利だけでなく義務もあるため、意図的に「口述」や「非難」などの言葉を使用したことに注意してください)
反対に、一人のプロジェクトの場合は、同僚のことを心配する必要がないので、チェックインしてください。
しかし、重要なのは、自分の状況と結果を知り、自分で決める必要があるということです。
(1)いいえ、「maven.compiler.source」は使用するコンパイラではありません。