【问题标题】:Prevent IntelliJ from adding iml files防止 IntelliJ 添加 iml 文件
【发布时间】:2010-05-25 10:42:45
【问题描述】:

我正在使用 Maven pom 文件,但我不希望对 iml 文件进行源代码控制。 当我打开一个项目时,IntelliJ 似乎将它创建的一些 iml 文件添加到 SVN 源代码管理中。我怎样才能防止这种情况发生?

我在存储库根目录的“svn:ignore”属性中有“*.iml”,但它似乎并没有阻止 IntelliJ 添加 imls。

【问题讨论】:

  • 这个问题似乎没有解决方案或解决方法。这真的让我很恼火,所以我为 JetBrains 创建了一个问题。 youtrack.jetbrains.net/issue/IDEA-58169
  • 感谢@Gweebz,在 Youtrack 上投了赞成票。
  • 为什么要避免版本控制 .iml 文件(可能还有 .idea/.ipr 项目定义)?是为了避免各个工作站之间的绝对路径不同吗?是这样,你应该使用路径变量:jetbrains.com/idea/webhelp/paths-and-path-variables.html
  • @retronym 我偶然发现了这个问题,虽然我不知道 OP 想要阻止 IntelliJ 创建 IML 文件的原因,但我知道我的原因。如果我在 NetBeans 或 Eclipse 中处理 Grails 项目,我可以在一个 IDE 中进行更改,关闭该 IDE,然后在另一个 IDE 中重新打开该项目,一切都很好。使用 IntelliJ 时不正确。如果我在 IntelliJ 中进行编辑,然后 NetBeans 又回到 IntelliJ,IntelliJ 会吓坏我的文件并弄乱我的文件。第一次发生在我身上时,我花了大约 2 个小时才把它全部整理好。
  • 不控制 .iml 的至少两个原因可能是 youtrack.jetbrains.net/issue/IDEA-64312youtrack.jetbrains.net/issue/IDEA-79280

标签: svn intellij-idea


【解决方案1】:

万一其他人偶然发现这个问题,我最好的运气是
设置 > 版本控制 > 忽略的文件
为:
*.idea
添加“忽略所有文件匹配” *.iml

不确定哪个版本的 IDEA 推出了这个功能,而且这个问题有点老了,所以可能没有实际意义。只是希望它能帮助像我一样从谷歌登陆这里的其他人。

【讨论】:

  • 自版本 13 Ultimate 起可用。
  • 你还需要这样做吗?我正在与 mac 和 pc 用户一起开发一个 android 项目,我们想知道对于这两个用户要忽略哪些文件...
  • 此设置在我的项目中不起作用 =( 我刚刚更新到 2016.4,使用终端中的“git rm”从 git 中删除了 .iml 文件,将这些文件添加到 .gitignore、提交和想法仍然设法将这些自动添加到 git。不错的功能,我很生气 >=(((
【解决方案2】:

最新版本的 IntelliJ 社区会单独提示您添加 iml 文件。如果您选中该框以避免将来被警告并在第一次提示您时选择“否”,则它不会安排任何其他 IML 文件以添加到 subversion。

【讨论】:

  • 这对我不起作用。在最新版本的 IntelliJ (9.0.3) 中,没有复选框可以避免将来被问到。在我的多模块项目(20 多个模块)中,我被询问了 20 多次 .iml 文件,无论我是否想取消忽略它。
  • 在 12.1.4 中为我工作
  • 我不喜欢复选框不指示将来是否只是 IML 文件将被忽略的方式。在我阅读此答案之前,我一直犹豫要不要检查它。
【解决方案3】:

详细阐述 Colin Hebert 的答案。是的,从 Maven 导入时,可以将 iml 文件移动到另一个目录。这似乎是防止这个问题的唯一方法。

这里是导入时使用的设置:

由于所有重要信息都保存在 Maven 本身中,因此重新导入现有模块只需要一点时间。收获真的是值得的。

【讨论】:

    【解决方案4】:

    您也可以选择不在版本控制目录中包含您的 .iml 文件。

    创建模块时,可以选择模块文件位置。

    我的 iml 文件将在 /ModuleName.iml 中,但内容将在 /myRoot/ 中

    【讨论】:

    • 这对“Maven 模块”有两个选项吗?更重要的是:如果在上一个屏幕上单击“导入现有模块”,它会起作用吗?因为那是 OP: IntelliJ with existing maven modules 的问题。
    【解决方案5】:

    如果您想禁用在所有项目中签入 *.iml 文件,在 Mac OS X 10.8.x 上,您可以转到 IntelliJ -> Preferences (Command-,) -> Version Control -> Ignore Files 并设置它在上面。如果您像我一样从事许多项目并且经常需要创建/导入新项目,这会更好,我不想在每个单独的项目上设置此首选项。

    【讨论】:

      【解决方案6】:

      在我的 Intellij 2019(2019.2.4 是我的版本)上对我有用的是:

      【讨论】:

        【解决方案7】:

        将 IntelliJ 配置为不自动将文件添加到 subversion。

        在 IntelliJ 6 中,此配置位于 Settings > Version Control > General Settings:


        文件创建/删除

        当使用 IDEA 创建文件时:

        [x] 在添加到之前显示选项 版本控制

        【讨论】:

        • 但我确实希望自动添加 java 文件,而不是 iml 文件。
        • @ripper234,好的,但请注意,使用上面的配置,每次要添加文件时都会得到一个确认窗口。您可以批准添加 java 文件并拒绝添加 iml 文件。
        • 我不想要确认窗口 :)
        • 这会让事情变得更糟:我们存储库中的 .iml 文件是什么。我们不想甚至想被问到。所以这个选项为我们提供了我们想要的完全相反
        猜你喜欢
        • 2020-03-23
        • 1970-01-01
        • 1970-01-01
        • 2023-03-29
        • 2016-08-01
        • 1970-01-01
        • 2020-10-17
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多