¿Qué son los archivos iml en Android Studio?


107

¿Qué son los archivos iml en el proyecto Android Studio? Leí que es un archivo de configuración para módulos. No entiendo cómo funciona, y no puedo usar scripts de Gradle para integrarlos con los módulos externos que agregue a su proyecto.

Además, la mayoría de las veces AS lo genera, por lo que no puedo controlar el comportamiento del proyecto. Si tengo un equipo que trabaja en diferentes IDE como Eclipse y AS, ¿es posible configurar mi proyecto para que sea IDE independiente?

No entiendo completamente cómo funciona este sistema.

112

¿Qué son los archivos iml en el proyecto Android Studio?

Una búsqueda en Google sobre iml file surja:

IML es un archivo creado por el módulo IntelliJ IDEA, un IDE utilizado para desarrollar aplicaciones Java. Almacena información sobre un módulo de desarrollo, que puede ser un componente Java, Plugin, Android o Maven; guarda las rutas del módulo, las dependencias y otras configuraciones.

(desde this page)

por qué no usar scripts Gradle para integrarse con módulos externos que se agregan a su proyecto.

Usted "utiliza secuencias de comandos Gradle para integrarse con módulos externos", o sus propios módulos.

Sin embargo, Gradle no es el modelo de IntelliJ IDEA nativa proyecto — que está separado, celebrada en .iml archivos y los metadatos en .idea/ directorios. En Android Studio, esas cosas se generan en gran medida a partir de los scripts de compilación de Gradle, razón por la cual a veces se le solicita que "sincronice el proyecto con archivos de Gradle" cuando cambia archivos como build.gradle. Esta es también la razón por la que no se molesta en poner los archivos .iml o .idea/ en control de versión, ya que sus contenidos se regenerarán.

Si tengo un equipo que trabaje en diferentes IDE como Eclipse y AS, ¿cómo hacer que el IDE del proyecto sea independiente?

En gran medida, no se puede.

que son bienvenidos a tener un proyecto de Android que utiliza la estructura de directorios de estilo Eclipse (por ejemplo, los recursos y se manifiestan en el directorio raíz del proyecto). Puede enseñarle a Gradle, a través del build.gradle, cómo encontrar archivos en esa estructura. Sin embargo, otros metadatos (compileSdkVersion, dependencias, etc.) no se replicarán tan fácilmente.

Otras alternativas incluyen: todo el mundo

  • Mover a otro sistema de construcción, como Maven, que es igualmente integrados (o no, dependiendo de su perspectiva) a ambos Eclipse y Android Studio

  • Espero que Andmore despegue pronto, por lo que quizás pueda tener un IDE de Eclipse que pueda crear proyectos de Android a partir de los scripts de construcción de Gradle

  • Haga que todos usen un IDE

  0

¿Qué ocurre si elimino el archivo iml? Estara bien? 17 jul. 162016-07-17 16:16:34

+1

@ E-Place: si está utilizando Android Studio, necesitará que Android Studio lo vuelva a generar, generalmente mediante la importación del proyecto. Android Studio no puede funcionar sin él. 17 jul. 162016-07-17 16:18:02

  0

cómo se puede crear el iml? tengo más de 4 archivos iml 17 jul. 162016-07-17 16:26:00

  0

@ E-Place: normalmente, tendrá un archivo '.iml' en la raíz del proyecto, más un archivo' .iml' en cada directorio del módulo (por ejemplo, 'app /'). Puede probar Herramientas> Android> Proyecto de sincronización con archivos Gradle. De lo contrario, es posible que deba volver a importar el proyecto. Si tiene inquietudes adicionales en esta área, solicite una nueva pregunta sobre el desbordamiento de la pila. 17 jul. 162016-07-17 16:32:48

+1

Usted * puede * hacer que todos usen el mismo IDE, al menos con respecto a los archivos '* .iml' y' .idea/', suponiendo que está distribuyendo/sincronizando los archivos usando' git' o similar. Para 'git', solo asegúrate de que los archivos que no deseas sincronizar estén referenciados en el archivo' .gitignore', como @Pavel Synek sugiere a continuación. Tendrá que eliminarlos del repositorio y regenerarlos/restaurarlos localmente, pero eso es solo 'mv',' git commit', y 'mv'. 16 mar. 172017-03-16 17:46:19

  0

Para tener en cuenta, no solo la aplicación Java que se desarrolló con IntelliJ tiene un archivo .iml. Tengo PhpStorm, que es uno de la variante IntelliJ y desarrollo una aplicación web con él, todavía generará el archivo .iml. 07 jun. 172017-06-07 08:20:27

+1

Lo irónico es que una búsqueda en Google ahora aparece esta respuesta. Buen trabajo :) 27 jul. 172017-07-27 23:53:13


52

Agregue .idea y *.iml a .gitignore, no necesita esos archivos para importar y compilar correctamente el proyecto.

+7

Bien, pero ¿qué son? ¿Cómo funcionan y qué impacto tienen? Estoy buscando a través de la fuente de otro proyecto y hay un módulo en el archivo IML que está presente solo allí, para gigya, por ejemplo, y no lo veo en ningún otro lugar, excepto en el manifiesto. Entonces, ¿ese módulo está presente en el proyecto o no? 09 jun. 152015-06-09 16:11:00


0

Esos archivos han sido creados y utilizados por el editor de Android Studio.

No necesita verificar esos archivos para controlar la versión.

Git utiliza .gitignore archivo, que contiene la lista de archivos y directorios, para conocer la lista de archivos y directorios que no necesitan ser registrado.

Android Studio crea automáticamente archivos .gitingnore el listado de todos los archivos y directorios que no necesitan registrarse en ningún control de versión.


1

Son archivos de proyecto que contienen información del módulo y metadatos.

Solo agregue *.iml a .gitignore.

En Android Estudio: Prensa CTRL +F9 para reconstruir su proyecto. Se generarán los archivos *.iml faltantes.