Android Studio中的iml文件是什么?

sha*_*dox 167 android intellij-idea android-studio

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

此外,大多数时候AS生成它们,所以我无法控制项目行为.如果我的团队在Eclipse和AS等不同的IDE中工作,是否可以设置我的项目以使其与IDE无关?

我不完全了解这个系统是如何工作的.

Com*_*are 161

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

出现谷歌搜索iml file:

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

(来自此页)

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

您可以"使用gradle脚本与外部模块集成"或您自己的模块.

但是,Gradle不是IntelliJ IDEA的本机项目模型 - 它是独立的,保存在.iml文件和.idea/目录中的元数据中.在Android Studio中,这些东西很大程度上是由Gradle构建脚本生成的,这就是为什么当您更改文件时,有时会提示您"将项目与Gradle文件同步" build.gradle.这也是您不需要放置.iml文件或.idea/版本控制的原因,因为它们的内容将被重新生成.

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

在很大程度上,你不能.

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

其他选择包括:

  • 将所有人移动到另一个构建系统,如Maven,它与Eclipse和Android Studio同样集成(或不同,取决于您的观点)

  • 希望Andmore能够很快起飞,所以也许你可以拥有一个可以从Gradle构建脚本构建Android项目的Eclipse IDE

  • 让每个人都使用一个IDE

  • 如果我删除 iml 文件会发生什么?不会有事吧? (3认同)
  • 您*可以*让每个人都使用相同的 IDE,至少对于“*.iml”文件和“.idea/”目录而言,假设您使用“git”或类似工具分发/同步文件。对于“git”,只需确保在“.gitignore”文件中引用您不想同步的文件,如下@Pavel Synek 所示。您需要从存储库中删除它们并在本地重新生成/恢复它们,但这只是“mv”、“git commit”和“mv”。 (2认同)

Pav*_*nek 70

添加.idea*.iml.gitignore,你并不需要这些文件,以成功导入并编译该项目.

  • 好的,但他们是什么?它们如何工作以及它们具有哪些影响?我正在查看另一个项目的来源,并且iml文件中只有一个模块存在,例如gigya,我不会在除了manifest之外的任何其他地方看到它.那么,该模块是否存在于项目中? (12认同)
  • `.idea` 作为一个整体不应该被忽视。它包含几个文件,如 lint 规则和自定义词典,团队绝对希望将这些文件签入版本控制。 (4认同)
  • 这甚至没有试图回答这个问题。 (3认同)

Red*_*olf 8

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

只需添加*.iml.gitignore

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