Android Studio 项目中的 .iml
文件是什么?我读到它是模块的配置文件。我不明白它是如何工作的,我不能只使用 gradle 脚本与您添加到项目中的外部模块集成。
此外,大多数时候 AS 会生成它们,因此我无法控制项目行为。如果我有一个在 Eclipse 和 AS 等不同 IDE 中工作的团队,是否可以设置我的项目使其与 IDE 无关?
我不完全理解这个系统是如何工作的。
Android Studio 项目中的 iml 文件是什么?
iml file
上的 Google 搜索出现:
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 Studio 同等集成(或不集成,取决于您的观点)
希望 Andmore 尽快起飞,这样也许你可以拥有一个可以从 Gradle 构建脚本构建 Android 项目的 Eclipse IDE
让每个人都使用一个 IDE
将 .idea
和 *.iml
添加到 .gitignore
,您不需要这些文件即可成功导入和编译项目。
.idea
作为一个整体,永远不应被忽视。它包含几个文件,例如 lint 规则和自定义字典,团队绝对希望将其签入版本控制。
它们是项目文件,包含模块信息和元数据。
只需将 *.iml
添加到 .gitignore
。
在 Android Studio 中:按 CTRL + F9 重建您的项目。将生成缺少的 *.iml
文件。
这些文件由 Android Studio 编辑器创建和使用。
您无需将这些文件签入版本控制。
Git 使用包含文件和目录列表的 .gitignore 文件来了解不需要签入的文件和目录的列表。
Android Studio 会自动创建 .gitingnore 文件,列出不需要签入任何版本控制的所有文件和目录。
不定期副业成功案例分享
.iml
文件,在每个模块目录中加上一个.iml
文件(例如,app/
)。你可以试试工具>安卓>将项目与 Gradle 文件同步。否则,您可能需要重新导入项目。如果您在这方面还有其他顾虑,请提出新的 Stack Overflow 问题。*.iml
文件和.idea/
目录方面,假设您使用git
或类似方式分发/同步文件。对于git
,只需确保在.gitignore
文件中引用了您不想同步的文件,正如下面@Pavel Synek 所建议的那样。您需要从存储库中删除它们并在本地重新生成/恢复它们,但这只是mv
、git commit
和mv
。