intellij-idea - IntelliJ IDEA 9 + Maven + 版本控制的最佳实践

标签 intellij-idea gradle version-control sbt maven-2

该项目使用 Maven,因此 POM 文件是项目信息的主要来源。项目文件中有一些有用的设置,最好保留。

OTOH IDEA 似乎在项目文件结构中创建了太多冗余更改,这会污染 SVN 历史记录,有时还会产生冲突。

我应该将 .idea 目录和 *.iml 文件置于版本控制之下吗?在全?部分?

更新:因此,到目前为止,我发现对我和我的团队最有效的最佳实践是:

  1. checkin 所有 IDEA 文件、*.iml 和 .idea 目录。它们包含有值(value)的信息,每次更新时重新创建它们是浪费时间。
  2. 为每个开发者创建私有(private)分支
  3. cd 进入 .idea 目录
  4. svn 将其切换到其对应的私有(private)分支
  5. 不要在定期提交时 checkin IDEA 文件——它们会污染历史记录。检查他们的特殊提交。

这样,您可以将 .idea 目录的内容保留在版本控制中,但不会妨碍常规提交。任何开发人员都可以访问其他人的 IDEA 目录。

更新 2:自从写了这个问题后,我已经改变了我的做法,按照许多响应者的建议,将任何 IntelliJ 文件 checkin 版本控制中。这是我目前对 Maven 和 Gradle 的实践。这些工具已经发展到可以始终从原始 .POM 或 .gradle 文件复制关键信息的程度。当文件更改时,IDE 会可靠地跟踪更改,因此您不会经常丢失 IDE 文件,因此无需 checkin 它们。

更新 3:在提出这个问题 7 年后,它似乎仍然具有相关性。同样的最佳实践也适用于 Gradle(也可能是 SBT):不要 checkin IDE 文件,而是根据需要从基本 POM、.gradle 或 SBT 文件重新创建它们。

最佳答案

简短的回答:不要将这些文件放在源代码控制存储库中,因为您可以“生成”它们(如果您不需要它们,如果它们很烦人,如果它们会破坏其他环境,则更是如此)。

我个人对 svn:ignore 使用以下值:

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

关于intellij-idea - IntelliJ IDEA 9 + Maven + 版本控制的最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1655293/

相关文章:

svn - 在 Windows 上与 Subversion 集成时使用哪些工具?

大型 SSIS ETL 项目中的版本控制

intellij-idea - 在Intellij中排除Gradle多项目中的文件

Javascript IDE 可以在 js 代码中定位方法或属性的父对象?

java - 新增 Maven 插件在 IntelliJ 中变红

gradle - 使用 gradle 在 raspberry pi 上运行 javafx 11 时出错

maven - 映射结构 : generated sources in intelliJ using annotationProcessorPaths

java - Gradle:如何列出所有 "given tests"

android - 如何发布具有另一个 android 库项目依赖项的 AAR?

eclipse - 提交项目时我应该包含 .project 和 .classpath 吗?