Android Studio 中的 .iml 文件是什么?

What are .iml files in Android Studio?

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

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

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

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

What are iml files in Android Studio project?

iml file 上的 Google 搜索出现:

IML is a module file created by IntelliJ IDEA, an IDE used to develop Java applications. It stores information about a development module, which may be a Java, Plugin, Android, or Maven component; saves the module paths, dependencies, and other settings.

(来自 this page

why not to use gradle scripts to integrate with external modules that you add to your project.

你做 "use gradle scripts to integrate with external modules",或者你自己的模块。

然而,Gradle 不是 IntelliJ IDEA 的原生项目模型——它是独立的,保存在 .iml 文件和 .idea/ 目录中的元数据中。在 Android Studio 中,这些东西主要是从 Gradle 构建脚本中生成的,这就是为什么当您更改 build.gradle 等文件时有时会提示您 "sync project with Gradle files" 的原因。这也是为什么您不必费心将 .iml 文件或 .idea/ 放入版本控制中,因为它们的内容将被重新生成。

If I have a team that work in different IDE's like Eclipse and AS how to make project IDE agnostic?

在很大程度上,你不能。

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

其他备选方案包括:

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

  • 希望 Andmore 尽快起飞,这样也许您可以拥有一个 Eclipse IDE 可以从 Gradle build 构建 Android 个项目脚本

  • 大家用一个IDE

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

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

Git 使用包含文件和目录列表的 .gitignore 文件来了解不需要签入的文件和目录列表。

Android studio 自动创建 .gitingnore 文件,列出不需要签入任何版本控制的所有文件和目录。

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

只需将 *.iml 添加到 .gitignore

在 Android Studio 中:按 CTRL + F9 重建项目。将生成缺少的 *.iml 个文件。