Cosa sono i file iml in Android Studio?


107

Cosa sono i file iml nel progetto Android Studio? Ho letto che è un file di configurazione per i moduli. Non capisco come funziona e non posso semplicemente usare gli script gradle per integrarmi con i moduli esterni che aggiungi al tuo progetto.

Inoltre, il più delle volte AS li genera, quindi non posso controllare il comportamento del progetto. Se ho una squadra che lavora in IDE diversi come Eclipse e AS, è possibile impostare il mio progetto in modo che sia IDNostico IDE?

Non capisco perfettamente come funzioni questo sistema.

112

Quali sono i file iml nel progetto Android Studio?

Una ricerca su Google su iml file salta fuori:

IML è un file di modulo creato da IntelliJ IDEA, un IDE utilizzato per sviluppare applicazioni Java. Memorizza le informazioni su un modulo di sviluppo, che può essere un componente Java, Plugin, Android o Maven; salva i percorsi del modulo, le dipendenze e altre impostazioni.

(da this page)

perché non usare gli script Gradle per l'integrazione con moduli esterni che si aggiunge al progetto.

Si "utilizza gli script gradle per l'integrazione con i moduli esterni" oi propri moduli.

Tuttavia, Gradle non è il modello di IntelliJ IDEA nativo progetto — che è separato, tenutasi a .iml file e metadati in .idea/ directory. In Android Studio, quella roba è in gran parte generata dagli script di build di Gradle, motivo per cui a volte ti viene richiesto di "sincronizzare il progetto con i file Gradle" quando modifichi file come build.gradle. Questo è anche il motivo per cui non ti preoccupare di mettere i file .iml o .idea/ nel controllo della versione, dato che i loro contenuti saranno rigenerati.

Se ho un team che lavora in IDE diversi come Eclipse e AS come rendere agnostico il progetto IDE?

In gran parte, non è possibile.

Siete invitati ad avere un progetto Android che utilizza la struttura di directory in stile Eclipse (ad esempio, risorse e manifest nella directory root del progetto). Puoi insegnare a Gradle, tramite build.gradle, come trovare i file in quella struttura. Tuttavia, altri metadati (compileSdkVersion, dipendenze, ecc.) Non saranno replicati così facilmente.

Altre alternative includono:

  • Spostare tutti su un altro sistema di compilazione, come Maven, che è altrettanto integrato (o meno, a seconda del punto di vista) sia per Eclipse e Android Studio

  • Spero che Andmore decollerà presto, in modo che possiate possedere un IDE Eclipse in grado di costruire progetti Android da script di build Gradle

  • Tutti usano un IDE

  0

cosa succede se rimuovo il file iml? andrà tutto bene? 17 lug. 162016-07-17 16:16:34

+1

@ E-Place: se si utilizza Android Studio, è necessario che Android Studio lo generi nuovamente, in genere importando il progetto. Android Studio non può funzionare senza di esso. 17 lug. 162016-07-17 16:18:02

  0

come può essere creato l'iml? Ho più di 4 file iml 17 lug. 162016-07-17 16:26:00

  0

@ E-Place: Normalmente, si avrà un file '.iml' nella radice del progetto, più un file' .iml' in ogni directory del modulo (ad es., app/'). Potresti provare Strumenti> Android> Sincronizza progetto con File Gradle. In caso contrario, potrebbe essere necessario reimportare il progetto. Se hai ulteriori dubbi in quest'area, chiedi una nuova domanda sull'overflow dello stack. 17 lug. 162016-07-17 16:32:48

+1

È * possibile * far usare a tutti lo stesso IDE, almeno per quanto riguarda i file '* .iml' e' .idea/', assumendo che si stia distribuendo/sincronizzando i file usando' git' o simili. Per 'git', assicurati solo che i file che non vuoi sincronizzare siano referenziati nel file' .gitignore', come suggerisce @Pavel Synek, sotto. Dovrai eliminarli dal repository e rigenerarli/ripristinarli localmente, ma questo è solo 'mv',' git commit' e 'mv'. 16 mar. 172017-03-16 17:46:19

  0

Da notare, non solo l'applicazione java sviluppata con IntelliJ ha il file .iml. Ho PhpStorm che è una variante di IntelliJ e sviluppo un'applicazione web con esso, genererà comunque il file .iml. 07 giu. 172017-06-07 08:20:27

+1

Ciò che è ironico è che una ricerca su Google ora genera questa risposta. Buon lavoro :) 27 lug. 172017-07-27 23:53:13


52

Aggiungi .idea e *.iml a .gitignore, non è necessario quei file per importare e compilare correttamente il progetto.

+7

Ok, ma cosa sono? Come funzionano e quale impatto hanno? Sto guardando attraverso la fonte di un altro progetto e c'è un modulo nel file iml che è presente solo lì, per esempio per gigya e non lo vedo in nessun altro posto tranne manifest. Quindi, quel modulo è presente nel progetto o no? 09 giu. 152015-06-09 16:11:00


0

Questi file vengono creati e utilizzati dall'editor di Android Studio.

Non è necessario archiviare tali file nel controllo di versione.

Git utilizza .gitignore di file, che contiene l'elenco di file e directory, per conoscere l'elenco di file e directory che non hanno bisogno di essere registrati.

Android Studio crea automaticamente i file .gitingnore sfogliare tutti i file e le directory che non hanno bisogno di essere controllate per qualsiasi controllo di versione.


1

Sono file di progetto che contengono le informazioni sul modulo e i metadati.

Basta aggiungere *.iml a .gitignore.

In Android Studio: Premere CTRL + F9 per ricostruire il progetto. Verranno generati i file mancanti *.iml.