質問

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

OTOH IDEA は、プロジェクト ファイル構造に過剰な変更を作成しすぎているようです。これにより、SVN 履歴が汚染され、場合によっては競合が発生します。

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

アップデート: したがって、これまでのところ、私と私のチームにとって効果的であると感じたベストプラクティスは次のとおりです。

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

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

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

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

役に立ちましたか?

解決

短い答え:あなたがそれらを「生成」することができますよう、ソース管理リポジトリにこれらのファイルを置く(と彼らは迷惑している場合、彼らは他の人の環境を破ることができる場合は、それらを必要としない場合、これはさらに真ではありません)。

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

target 
*~ 
*.log 
.classpath 
.project 
*.ipr 
*.iws 
*.iml 
.settings 

他のヒント

Mavenの素晴らしい点の一つは、ツールのサポートは、Eclipse、アイデアやNetBeansでネイティブプロジェクトにPOMを回すために存在するということです。あなたはポンポンを持っている場合、あなたはかなり迅速にネイティブプロジェクトを作成することができます。

そのため、私は、ソース管理下.ideaまたは* .IMLファイルに私はRMIスタブやクラスファイルをチェックインするよりも、それ以上をチェックしません。

私はあなたがバージョン管理に.ideaディレクトリを置くべきだと思います。構成のほとんどが含まれているバージョンが追跡されなければならない、例えばコンパイラのconfigsます。

それはあなただけのローカル環境への特定の構成が含まれているため、

バージョン管理に属していないだけで、ファイルは、.idea / workspace.xmlです。

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

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

私の意見は、我々はバージョン管理外の任意のIDEの特定のファイルを保つべきであるということです。アイデアは、我々はそうでMavenのPOMファイルなどIDEの独立した形で可能な限りの情報を維持するべきであるということです。すべての重要なプロジェクト設定が保持することができます。そして、ポンポンファイルに保存すべての主要なプロジェクト設定を持つことは、私だけではなくIDEAプロジェクトの設定が、他のIDEの特定の構成でチェックする重大な理由が表示されません。また、.ideaフォルダスタイルのプロジェクト設定は本当にチェンジログを汚染します。我々はまだバージョン管理におけるIDEAプロジェクトの設定を維持したいと、私たちは、少なくとも一つの.iprファイル形式に保存することができます。

私はこのパーティーに遅れてんだけど、この正確な問題は、私を悩ませてきました。そして、私はちょうど私が、少なくとも私たちのソース管理システムで、仕事ができると考えているものと触発されました。

IntelliJのファイルは、権威のpom.xmlとソースと「一緒に」が格納されている必要はありません。これらの非ソース関連の変更は、ソースツリー内の別の場所に記録されている場合はバージョン管理履歴は「汚染」ではありません。

だから私は、バージョン管理システムにおける並列場所にIntelliJのファイルを移動してみ開発者のマシン上でソースとプロジェクトファイルを再統一するために、単純なファイル/ディレクトリのマッピングを使用して、純粋にされているバージョン管理システムの変化を監視しますビルドに影響を与えるファイルます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top