Was sind IMI-Dateien in Android Studio?


107

Was sind IML-Dateien im Android Studio-Projekt? Ich lese, dass es Konfigurationsdatei für Module ist. Ich verstehe nicht, wie es funktioniert, und kann nicht einfach Gradle-Skripte verwenden, um externe Module zu integrieren, die Sie zu Ihrem Projekt hinzufügen.

Auch die meiste Zeit AS generiert sie, so dass ich das Projektverhalten nicht steuern kann. Wenn ich ein Team habe, das in verschiedenen IDEs wie Eclipse und AS arbeitet, ist es möglich, mein Projekt so zu konfigurieren, dass es IDE-agnostisch ist?

Ich verstehe nicht vollständig, wie dieses System funktioniert.

112

Was sind IMI-Dateien im Android Studio-Projekt?

Eine Google-Suche auf iml file auftaucht:

IML ist eine Moduldatei von IntelliJ IDEA erstellt, eine IDE verwendet Java-Anwendungen zu entwickeln. Es speichert Informationen über ein Entwicklungsmodul, bei dem es sich um eine Java-, Plugin-, Android- oder Maven-Komponente handeln kann. speichert die Modulpfade, Abhängigkeiten und andere Einstellungen.

(von this page)

warum nicht gradle Skripte zu verwenden, um mit externen Modulen zu integrieren, die Sie zu Ihrem Projekt hinzufügen.

Sie können "Grapleskripts verwenden, um externe Module zu integrieren" oder Ihre eigenen Module.

Allerdings ist Gradle nicht IntelliJ IDEA natives Projektmodell — das ist separat, in .iml Dateien und die Metadaten in .idea/ Verzeichnisse gehalten. In Android Studio wird dieses Zeug größtenteils aus den Gradle-Build-Skripten generiert, weshalb Sie manchmal aufgefordert werden, "Projekt mit Gradle-Dateien zu synchronisieren", wenn Sie Dateien wie build.gradle ändern. Das ist auch der Grund, warum Sie keine .iml Dateien oder .idea/ in Versionskontrolle setzen, da ihre Inhalte neu generiert werden.

Wenn ich ein Team habe, das in verschiedenen IDEs wie Eclipse und AS arbeitet, wie man Projekt IDE agnostic macht?

In einem großen Umfang können Sie nicht.

Sie können ein Android-Projekt verwenden, das die Eclipse-ähnliche Verzeichnisstruktur verwendet (z. B. Ressourcen und Manifest im Projektstammverzeichnis). Sie können Gradle mithilfe von build.gradle beibringen, wie Sie Dateien in dieser Struktur finden. Andere Metadaten (compileSdkVersion, Abhängigkeiten usw.) können jedoch nicht annähernd so einfach repliziert werden.

Andere Alternativen beinhalten:

  • Verschieben jeder zu einem anderen Build-System über, wie Maven, dass ebenso integriert ist (oder nicht, auf Ihrer Perspektive abhängig) sowohl Eclipse und Android Studio

  • Hoffe, dass Andmore bald startet, so dass Sie vielleicht eine Eclipse-IDE haben können, die Android-Projekte von Gradle Build-Skripten erstellen können

  • Haben alle eine IDE

  0

Was passiert, wenn ich die IMI-Datei entferne? es wird alles gut? 17 jul. 162016-07-17 16:16:34

+1

@ E-Place: Wenn Sie Android Studio verwenden, müssen Sie Android Studio neu generieren lassen, in der Regel durch Importieren des Projekts. Android Studio kann ohne es nicht funktionieren. 17 jul. 162016-07-17 16:18:02

  0

Wie kann das IMI erstellt werden? ich habe mehr als 4 iml file 17 jul. 162016-07-17 16:26:00

  0

@ E-Place: Normalerweise haben Sie eine '.iml' Datei im Projektstamm, plus eine' .iml' Datei in jedem Modulverzeichnis (z. B. 'app /'). Sie könnten Tools> Android> Projekt mit Gradle-Dateien synchronisieren ausprobieren. Andernfalls müssen Sie das Projekt möglicherweise erneut importieren. Wenn Sie weitere Probleme in diesem Bereich haben, fragen Sie bitte nach einer neuen Stack Overflow-Frage. 17 jul. 162016-07-17 16:32:48

+1

Sie * können * alle die gleiche IDE verwenden, zumindest in Bezug auf die Dateien '* .iml' und' .idea/', vorausgesetzt, Sie verteilen/synchronisieren die Dateien mit' git' oder ähnlichem. Stellen Sie für 'git' sicher, dass die Dateien, die Sie nicht synchronisieren möchten, in der Datei' .gitignore' referenziert sind, wie von @ Pavel Synek vorgeschlagen. Sie müssen sie aus dem Repository löschen und lokal neu generieren/wiederherstellen, aber das sind nur 'mv',' git commit' und 'mv'. 16 mär. 172017-03-16 17:46:19

  0

Zu beachten, nicht nur Java-Anwendung, die mit IntelliJ entwickelt hat .IML-Datei. Ich habe PhpStorm, die eine IntelliJ-Variante ist, und ich entwickle Web-Anwendung damit, es wird immer noch IML-Datei generieren. 07 jun. 172017-06-07 08:20:27

+1

Was ironisch ist, ist, dass eine Google-Suche jetzt diese Antwort aufgibt. Gute Arbeit :) 27 jul. 172017-07-27 23:53:13


52

Fügen Sie .idea und *.iml zu .gitignore hinzu, Sie benötigen diese Dateien nicht, um das Projekt erfolgreich zu importieren und zu kompilieren.

+7

Ok, aber was sind sie? Wie funktionieren sie und welchen Einfluss haben sie? Ich schaue mir die Quelle eines anderen Projekts an und es gibt ein Modul in der IMI-Datei, das nur dort vorhanden ist, zum Beispiel für Gigya, und ich sehe es nirgendwo anders als in Manifest. Also, ist das Modul im Projekt vorhanden oder nicht? 09 jun. 152015-06-09 16:11:00


0

Diese Dateien werden vom Android Studio-Editor erstellt und verwendet.

Sie müssen diese Dateien nicht zur Versionskontrolle einchecken.

Git verwendet .gitignore Datei, die Liste der Dateien und Verzeichnisse enthält, die Liste der Dateien und Verzeichnisse zu kennen, müssen nicht in überprüft werden.

Android Studio erstellt automatisch .gitingnore Dateien alle Dateien Auflisten und Verzeichnisse, die nicht in eine Versionskontrolle eingecheckt werden müssen.


1

Sie sind Projektdateien, die die Modulinformationen und Metadaten enthalten.

Fügen Sie einfach *.iml zu .gitignore hinzu.

In Android Studio: Drücken Sie CTRL +F9 Ihr Projekt neu zu erstellen. Die fehlenden *.iml Dateien werden generiert.