Cosa sono i file iml in Android Studio?


186

Cosa sono i file iml nel progetto Android Studio? Ho letto che si tratta di un file di configurazione per i moduli. Non capisco come funziona e non posso semplicemente usare script gradle per integrarli con 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 un team che lavora in diversi IDE come Eclipse e AS, è possibile impostare il mio progetto in modo che sia indipendente dall'IDE?

Non capisco fino in fondo come funziona questo sistema.

Risposte:


172

Cosa sono i file iml nel progetto Android Studio?

Viene visualizzata una ricerca su Google iml file:

IML è un file di modulo creato da IntelliJ IDEA, un IDE utilizzato per sviluppare applicazioni Java. Memorizza 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 questa pagina )

perché non usare gli script gradle per l'integrazione con i moduli esterni che aggiungi al tuo progetto.

"Usa gli script gradle per integrarti con moduli esterni" o con i tuoi moduli.

Tuttavia, Gradle non è il modello di progetto nativo di IntelliJ IDEA, ovvero separato, contenuto in .imlfile e metadati nelle .idea/directory. In Android Studio, queste cose sono in gran parte generate dagli script di build Gradle, motivo per cui a volte ti viene richiesto di "sincronizzare il progetto con i file Gradle" quando cambi file come build.gradle. Questo è anche il motivo per cui non ti preoccupi di mettere i .imlfile o .idea/nel controllo della versione, poiché il loro contenuto verrà rigenerato.

Se ho un team che lavora in diversi IDE come Eclipse e AS come rendere indipendente l'IDE del progetto?

In larga misura, non puoi.

Puoi avere un progetto Android che utilizza la struttura di directory in stile Eclipse (ad esempio, risorse e manifest nella directory principale 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 altrettanto facilmente.

Altre alternative includono:

  • Sposta tutti su un altro sistema di build, come Maven, che sia ugualmente integrato (o meno, a seconda della tua prospettiva) sia su Eclipse che su Android Studio

  • Spero che Andmore decollerà presto, quindi forse potresti avere un IDE Eclipse in grado di costruire progetti Android da script di build Gradle

  • Chiedi a tutti di usare un IDE


1
cosa succede se rimuovo il file iml? andrà tutto bene?
E-Place,

1
@ E-Place: se stai usando Android Studio, dovrai far rigenerare Android Studio, in genere importando il progetto. Android Studio non può funzionare senza di essa.
CommonsWare,

come può creare l'IS? ho più di 4 file iml
E-Place

@ E-Place: normalmente avrai un .imlfile nella radice del progetto, più un .imlfile in ogni directory del modulo (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 questo settore, fai una nuova domanda di overflow dello stack.
CommonsWare,

1
Puoi fare in modo che tutti utilizzino lo stesso IDE, almeno per quanto riguarda i *.imlfile e la .idea/directory, supponendo che tu stia distribuendo / sincronizzando i file usando gito simili. Per git, assicurati solo che i file che non vuoi sincronizzare siano referenziati nel .gitignorefile, come suggerisce @Pavel Synek, di seguito. Avrete bisogno di cancellarli dal repository e rigenerare / ripristinarli a livello locale, ma questo è solo mv, git commite mv.
Sarah Messer,

76

Aggiungi .ideae *.imla .gitignore, non hai bisogno di quei file per importare e compilare correttamente il progetto.


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

3
.ideanel suo insieme non dovrebbe mai essere ignorato. Contiene diversi file, come regole per i filacci e dizionari personalizzati, che un team vorrebbe assolutamente controllare nel controllo della versione.
M-Pixel,

2
Questo non tenta nemmeno di rispondere alla domanda.
margherita,

12

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

Aggiungi *.imla .gitignore.

In Android Studio: premi CTRL+ F9per ricostruire il tuo progetto. I *.imlfile mancanti verranno generati.


2

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

Non è necessario archiviare tali file per il controllo della versione.

Git usa il file .gitignore, che contiene un elenco di file e directory, per conoscere l'elenco di file e directory che non devono essere archiviati.

Android Studio crea automaticamente file .gitingnore che elencano tutti i file e le directory che non devono essere archiviati in nessun controllo di versione.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.