Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 是否必须在版本控制中保存*.iml文件?_Android_Android Studio_Version Control - Fatal编程技术网

Android 是否必须在版本控制中保存*.iml文件?

Android 是否必须在版本控制中保存*.iml文件?,android,android-studio,version-control,Android,Android Studio,Version Control,我现在已经切换到Android Studio,并使用源代码树将我的项目保存在Git中。每当我从模块中添加或删除任何库时,其.iml文件也会更改。我是否提交*.iml并不重要,因为它们是在其他Android Studio中自动生成的。但是,它说您应该存储*.iml。我的问题是,我们真的需要与他人分享我们的*.iml吗?如果是,原因是什么?一般最佳做法是: 使项目尽可能与IDE无关 不要提交生成的文件 因此,答案是:最好让VCS忽略这些文件。是的,.iml文件适用于版本控制(请参阅) 使项目尽可

我现在已经切换到Android Studio,并使用源代码树将我的项目保存在Git中。每当我从模块中添加或删除任何库时,其.iml文件也会更改。我是否提交*.iml并不重要,因为它们是在其他Android Studio中自动生成的。但是,它说您应该存储*.iml。我的问题是,我们真的需要与他人分享我们的*.iml吗?如果是,原因是什么?

一般最佳做法是:

  • 使项目尽可能与IDE无关
  • 不要提交生成的文件

因此,答案是:最好让VCS忽略这些文件。

是的,.iml文件适用于版本控制(请参阅)

使项目尽可能与IDE无关也是正确的,然而,对于使用另一个IDE开发的人来说,共享.iml文件并不会破坏任何东西。对他们来说,它们只是一堆与他们无关的相对较小的文件

对于同时使用不同IDE的团队来说,一个好的做法是将每个IDE的项目文件存储在VCS中,只排除那些包含特定于单个开发人员环境的路径、环境变量等的文件。这样,任何使用受支持IDE之一的人都可以享受适当的共享设置带来的好处,例如:

  • 共享生成配置
  • 共享依赖项
  • 自动代码质量检查的配置
有更多的用例,这取决于正在使用的特定IDE。
编辑:对于IntelliJ,另请参见

我同意它们是与代码无关的IDE依赖文件,不应共享但是,那么您应该知道如何重新生成它们

当您的远程回购不包含这些文件时,您可能会遇到这样的情况,当您克隆代码并在IDEA中打开时,它只会显示一系列错误。为什么?<代码>*。不会重新生成iml文件


您必须使用“文件”-“新”-“版本控制项目”从IDEA导入。只有这样才能为您生成文件。

是!!!当您开发gradle base项目时,那么.iml文件将存储您的项目信息,因此我认为它可以很好地存储在version control.IMHO上,只需注意2014年的答案。我不同意.iml文件应提交给源代码管理。它们是完全生成的,IDE可以根据对Gradle文件的更改随意重写它们。这使得它们与Gradle文件冗余,当Gradle文件发生更改时,您还需要签出、维护和签入。在最新的Android Studio(1.5.1)中,当您从头开始创建新的Android项目时,Android Studio会自动创建.gitignore文件并在.gitignore中添加*.iml。因此,在2016年,答案是“不,在版本控制系统中保存.iml文件不是强制性的。”就我个人而言,我发现Android Studio一直在对.iml文件进行微小的重新排列和更改,因此在版本控制中维护它们是一件麻烦事。我总是得到双重答案!Haresh的上述评论是肯定的,而你说“不”。我该去哪里?我认为这无关紧要,因为*.iml不共享任何用户的项目路径。所以分享似乎很好。我不确定在调用maven的线程中是否考虑到了这一点——没有maven的Idea项目是完全可能的,在这种情况下,它确实应该提交(因为它是存储project conf的唯一地方)。但是,如果您使用maven,并且只生成iml,我看不出有什么意义。还有另一种方法可以生成文件。