Android Studio中的iml文件是什么?


107

Android Studio项目中的iml文件是什么?我读过它是模块的配置文件。我不明白它是如何工作的,我不能仅仅使用gradle脚本与添加到项目中的外部模块进行集成。

此外,大多数时间AS生成它们,所以我无法控制项目行为。如果我有一个团队可以在Eclipse和AS等不同的IDE中工作,是否可以设置我的项目,因此IDE是不可知的?

我不完全理解这个系统是如何工作的。

112

什么是Android Studio项目中的iml文件?

iml file谷歌搜索变成了:

IML是IntelliJ IDEA的,用来开发Java应用程序的IDE创建的模块文件。它存储有关开发模块的信息,该模块可能是Java,Plugin,Android或Maven组件;保存模块路径,依赖关系和其他设置。

(从this page

为什么不使用gradle这个脚本与您添加到您的项目外部模块集成。

您可以“使用gradle脚本与外部模块集成”或您自己的模块。

但是,Gradle不是IntelliJ IDEA的原生项目模型—,它是单独的,在.iml文件和.idea/目录中保存了元数据。在Android Studio中,这些内容主要是由Gradle构建脚本生成的,这就是为什么当您更改像build.gradle这样的文件时,有时会提示您“将项目与Gradle文件同步”。这也是为什么你不要打扰.iml文件或.idea/版本控制,因为他们的内容将被重新生成。

如果我有一个团队在像Eclipse和AS这样的不同IDE中工作如何使项目IDE不可知?

在很大程度上,你不能。

欢迎您有一个使用Eclipse风格目录结构(例如,项目根目录中的资源和清单)的Android项目。您可以通过build.gradle教Gradle,如何查找该结构中的文件。但是,其他元数据(compileSdkVersion,依赖关系等)将不会轻易被复制。

其他替代方案包括:

  • 移至大家转移到另一个编译系统,像Maven的,即同样集成(或没有,这取决于你的观点)于Eclipse和Android工作室

  • 希望Andmore即将起飞,这样也许你就可以拥有一个Eclipse IDE,可以从Gradle构建脚本构建Android项目

  • 是否有人使用一个IDE

  0

如果我删除iml文件会发生什么?它会没事的? 17 7月. 162016-07-17 16:16:34

+1

@ E-Place:如果您使用的是Android Studio,则需要让Android Studio重新生成它,通常通过导入该项目。没有它,Android Studio不能运行。 17 7月. 162016-07-17 16:18:02

  0

iml如何创建?我有4个以上的iml文件 17 7月. 162016-07-17 16:26:00

  0

@ E-Place:通常,你将在项目根目录下有一个'.iml'文件,在每个模块目录(例如'app /')中加上一个'.iml'文件。您可以尝试工具> Android>使用Gradle文件同步项目。否则,您可能需要重新导入项目。如果您在这方面有其他问题,请提出一个新的Stack Overflow问题。 17 7月. 162016-07-17 16:32:48

+1

假设你使用'git'或类似方法分发/同步这些文件,你*可以让每个人都使用相同的IDE,至少就'* .iml'文件和'.idea /'目录而言。对于'git',只要确保你不想同步的文件在'.gitignore'文件中引用,就像@Pavel Synek建议的那样。您需要从存储库中删除它们并在本地重新生成/恢复它们,但这只是'mv','git commit'和'mv'。 16 3月. 172017-03-16 17:46:19

  0

要注意的是,不仅使用IntelliJ开发的java应用程序具有.iml文件。我有PhpStorm这是IntelliJ变种之一,我开发它的Web应用程序,它仍然会生成.iml文件。 07 6月. 172017-06-07 08:20:27

+1

具有讽刺意味的是,Google搜索现在可以找到答案。良好的工作:) 27 7月. 172017-07-27 23:53:13


52

.idea*.iml添加到.gitignore,您不需要这些文件来成功导入和编译项目。

+7

好的,但它们是什么?他们如何工作以及他们有哪些影响?我正在查看另一个项目的源代码,并且iml文件中仅存在一个模块,例如gigya,除了manifest之外,我没有在其他任何地方看到它。那么,该模块出现在项目中还是没有? 09 6月. 152015-06-09 16:11:00


0

这些文件是由Android Studio编辑器创建和使用的。

您不需要将这些文件签入到版本控制中。

Git使用的.gitignore文件,它包含的文件和目录列表,要知道,不需要在被检查的文件和目录的列表。

的Android Studio会自动创建.gitingnore文件列出所有文件以及不需要检入任何版本控制的目录。


1

它们是项目文件,包含模块信息和元数据。

只需将*.iml添加到.gitignore即可。

在Android Studio中:按CTRL + F9重建您的项目。将会生成丢失的*.iml文件。