41

プロジェクトはMavenを使用しているため、POMファイルがプロジェクト情報の主なソースです。プロジェクトファイルには、保持しておくと便利な設定がいくつかあります。

OTOH IDEAは、プロジェクトファイル構造に冗長な変更を多く作成しすぎて、SVN履歴を汚染し、場合によっては競合を引き起こすようです。

.ideaディレクトリと*.imlファイルをバージョン管理下に置く必要がありますか?略さずに?ある程度?

更新:これまでのところ、私と私のチームで機能していることがわかったベストプラクティスは次のとおりです。

  1. すべてのIDEAファイル、*。imlおよび.ideaディレクトリをチェックインします。それらには貴重な情報が含まれており、更新するたびにそれを再作成するのは時間の無駄です。
  2. 開発者ごとにプライベートブランチを作成する
  3. .ideaディレクトリにcd
  4. svnはそれを対応するプライベートブランチに切り替えます
  5. 通常のコミットでIDEAファイルをチェックインしないでください-それらは履歴を汚染します。特別なコミットでそれらをチェックインします。

このようにして、.ideaディレクトリのコンテンツをバージョン管理に保持しますが、通常のコミットの邪魔にならないようにします。すべての開発者は、他の人のIDEAディレクトリにアクセスできます。

更新2:この質問が書かれたので、多くの回答者からのアドバイスに従って、バージョン管理にIntelliJファイルをチェックインしないように慣習を変更しました。これは、MavenとGradleの両方に対する私の現在のプラクティスです。ツールは、重要な情報を常に元の.POMまたは.gradleファイルから再現できるように開発されました。ファイルが変更されると、IDEは変更を確実に追跡するため、IDEファイルを頻繁に失うことはなく、チェックインする必要はありません。

更新3:この質問をしてから7年後、それはまだ関連しているようです。同じベストプラクティスがGradleにも適用されます(おそらくSBTも)。IDEファイルをチェックインせず、必要に応じて基本的なPOM、.gradle、またはSBTファイルから再作成します。

4

6 に答える 6

17

簡単な答え:これらのファイルは「生成」できるため、ソース管理リポジトリに配置しないでください(必要がない場合、煩わしい場合、他の環境を破壊する可能性がある場合は、さらに当てはまります)。

私は個人的に次の値を使用しますsvn:ignore

target 
*~ 
*.log 
.classpath 
.project 
*.ipr 
*.iws 
*.iml 
.settings 
于 2009-10-31T20:09:16.837 に答える
15

Mavenの優れた点の1つは、POMをEclipse、Idea、およびNetbeansのネイティブプロジェクトに変換するためのツールサポートが存在することです。pomをお持ちの場合は、ネイティブプロジェクトをすばやく作成できます。

そのため、RMIスタブまたはクラスファイルをチェックインするよりも、ソース管理下の.ideaまたは*.imlファイルをチェックインすることはありません。

于 2009-11-01T02:37:14.710 に答える
14

.ideaディレクトリをバージョン管理に入れるべきだと思います。そこに含まれる構成のほとんどは、バージョンを追跡する必要があります(コンパイラー構成など)。

バージョン管理に属していない唯一のファイルは、ローカル環境に固有の構成のみが含まれているため、.idea/workspace.xmlです。

IntelliJ Ideaは、実際にはworkspace.xmlをデフォルトで無視リストに入れるため、Ideaを使用してチェックインする場合は、何も変更せずにすべて設定する必要があります。

于 2009-12-13T18:27:12.883 に答える
9

標準的な答えは「プロジェクトファイルをチェックインせず、.pomだけをチェックインする」であることがわかります。しかし、.iprファイルのようなものには、.pomファイルから派生できない多くの便利な設定が含まれています。仲間のIntelliJユーザーがそれらの設定を共有したい場合はどうなりますか?.iprファイルはバージョン管理されるように設計されていることを知っています(たとえば、このスレッドを参照してください)。私は実際の答えがあればいいのにと思いますが、この問題についての良い習慣はまだ見つかりません。

于 2009-12-07T02:08:19.017 に答える
3

私の意見では、IDE固有のファイルはバージョン管理から除外する必要があります。アイデアは、MavenpomファイルなどのIDEに依存しない形式で可能な限り多くの情報を保持する必要があるということです。重要なプロジェクト設定はすべてそこに保持できます。そして、すべての主要なプロジェクト設定をpomファイルに保持しているので、IDEAプロジェクト構成だけでなく他のIDE固有の構成をチェックインする重大な理由はわかりません。さらに、.ideaフォルダースタイルのプロジェクト構成は、実際にチェンジセットログを汚染します。また、IDEAプロジェクトの設定をバージョン管理で維持したいので、少なくとも単一の.iprファイル形式で保存できます。

于 2010-01-18T11:57:52.047 に答える
1

私はこのパーティーに遅れていますが、この正確な問題が私を悩ませてきました。そして、少なくともソース管理システムでは、うまくいくと信じていることに刺激を受けました。

IntelliJファイルは、信頼できるpom.xmlおよびソースと「一緒に」保存する必要はありません。ソースに関連しない変更がソースツリーの別の場所に記録されている場合、バージョン管理履歴は「汚染」されません。

そこで、IntelliJファイルをバージョン管理システムの並列の場所に移動し、単純なファイル/ディレクトリマッピングを使用して、開発者のマシン上のソースファイルとプロジェクトファイルを再統合し、純粋に影響を与えるファイルに対するバージョン管理システムの変更を監視してみます。ビルド。

于 2012-07-13T04:50:56.880 に答える