Co to są pliki IML w projekcie Android Studio? Przeczytałem, że jest to plik konfiguracyjny modułów. Nie rozumiem, jak to działa, i nie mogę po prostu używać skryptów stopniowych do integracji z modułami zewnętrznymi, które dodajesz do swojego projektu.
Ponadto przez większość czasu AS je generuje, więc nie mogę kontrolować zachowania projektu. Jeśli mam zespół, który działa w różnych IDE, takich jak Eclipse i AS, czy jest możliwe skonfigurowanie mojego projektu, aby był on niezależny od IDE?
IML to plik modułu utworzony przez IntelliJ IDEA, IDE używane do programowania aplikacji Java. Przechowuje informacje o module rozwojowym, który może być komponentem Java, Plugin, Android lub Maven; zapisuje ścieżki modułu, zależności i inne ustawienia.
dlaczego nie skorzystać ze skryptów stopniowych w celu integracji z modułami zewnętrznymi dodanymi do projektu.
Używasz „skryptów stopniowych do integracji z modułami zewnętrznymi” lub własnych modułów.
Jednak Gradle nie jest rodzimym modelem projektu IntelliJ IDEA - jest osobny, przechowywany w .imlplikach, a metadane w .idea/katalogach. W Android Studio te rzeczy są w dużej mierze generowane ze skryptów kompilacji Gradle, dlatego czasami pojawia się monit o „synchronizację projektu z plikami Gradle” podczas zmiany takich plików build.gradle. Dlatego też nie zawracasz sobie głowy umieszczaniem .imlplików lub .idea/kontrolą wersji, ponieważ ich zawartość zostanie zregenerowana.
Jeśli mam zespół, który pracuje w różnych IDE, takich jak Eclipse i AS, jak sprawić, by IDE projektu było agnostyczne?
W dużej mierze nie możesz.
Zapraszamy do posiadania projektu na Androida, który wykorzystuje strukturę katalogów w stylu Eclipse (np. Zasoby i manifest w katalogu głównym projektu). Możesz nauczyć Gradle, build.gradlejak znaleźć pliki w tej strukturze. Jednak inne metadane (compileSdkVersion , zależności itp.) Nie będą tak łatwo replikowane.
Inne alternatywy to:
Przenieś wszystkich do innego systemu kompilacji, takiego jak Maven, który jest równie zintegrowany (lub nie, zależnie od twojej perspektywy) zarówno w Eclipse, jak i Android Studio
Mam nadzieję, że Andmore wkrótce wystartuje , więc być może możesz mieć środowisko IDE Eclipse, które może budować projekty na Androida ze skryptów kompilacji Gradle
co się stanie, jeśli usunę plik IML? będzie dobrze?
E-Place,
1
@ E-Place: Jeśli korzystasz z Android Studio, musisz go ponownie wygenerować, zazwyczaj importując projekt. Android Studio nie może bez niego działać.
CommonsWare 17.07.16
jak można stworzyć IML? Mam więcej niż 4 pliki IML
E-Place
@ E-Place: Zwykle będziesz mieć jeden .imlplik w katalogu głównym projektu, plus jeden .imlplik w każdym katalogu modułu (np app/.). Możesz spróbować Narzędzia> Android> Synchronizuj projekt z plikami stopniowymi. W przeciwnym razie konieczne może być ponowne zaimportowanie projektu. Jeśli masz dodatkowe obawy w tym obszarze, zadaj nowe pytanie dotyczące przepełnienia stosu.
CommonsWare 17.07.16
1
Możesz sprawić, by wszyscy używali tego samego IDE, przynajmniej w odniesieniu do *.imlplików i .idea/katalogu, zakładając, że dystrybuujesz / synchronizujesz pliki za pomocą gitlub podobnie. Po gitprostu upewnij się, że w pliku znajdują się pliki, których nie chcesz synchronizować .gitignore, jak sugeruje @Pavel Synek poniżej. Trzeba je usunąć z repozytorium i zregenerować / przywrócić je lokalnie, ale to po prostu mv, git commiti mv.
Sarah Messer
76
Dodaj .ideai *.imldo .gitignore, nie potrzebujesz tych plików, aby pomyślnie zaimportować i skompilować projekt.
Ok, ale czym one są? Jak działają i jaki mają wpływ? Przeglądam źródło innego projektu i w pliku iml jest moduł, który jest obecny tylko tam, na przykład gigya i nie widzę go w żadnym innym miejscu poza manifestem. Czy ten moduł jest obecny w projekcie, czy nie?
shadox
3
.ideajako całość nigdy nie powinno być ignorowane. Zawiera kilka plików, takich jak reguły szarż i słowniki niestandardowe, które zespół absolutnie chciałby sprawdzić w kontroli wersji.
M-Pixel
2
To nawet nie próbuje odpowiedzieć na pytanie.
stokrotka
12
Są to pliki projektu, które zawierają informacje o module i metadane.
Po prostu dodaj *.imldo .gitignore.
W Android Studio: naciśnij CTRL+, F9aby odbudować swój projekt. Brakujące *.imlpliki zostaną wygenerowane.
Pliki te są tworzone i używane przez edytor Android Studio.
Nie trzeba rejestrować tych plików w celu kontroli wersji.
Git używa pliku .gitignore, który zawiera listę plików i katalogów, aby poznać listę plików i katalogów, które nie muszą być rejestrowane.
Android studio automatycznie tworzy pliki .gitingnore z listą wszystkich plików i katalogów, które nie muszą być rejestrowane w żadnej kontroli wersji.
.iml
plik w katalogu głównym projektu, plus jeden.iml
plik w każdym katalogu modułu (npapp/
.). Możesz spróbować Narzędzia> Android> Synchronizuj projekt z plikami stopniowymi. W przeciwnym razie konieczne może być ponowne zaimportowanie projektu. Jeśli masz dodatkowe obawy w tym obszarze, zadaj nowe pytanie dotyczące przepełnienia stosu.*.iml
plików i.idea/
katalogu, zakładając, że dystrybuujesz / synchronizujesz pliki za pomocągit
lub podobnie. Pogit
prostu upewnij się, że w pliku znajdują się pliki, których nie chcesz synchronizować.gitignore
, jak sugeruje @Pavel Synek poniżej. Trzeba je usunąć z repozytorium i zregenerować / przywrócić je lokalnie, ale to po prostumv
,git commit
imv
.Dodaj
.idea
i*.iml
do.gitignore
, nie potrzebujesz tych plików, aby pomyślnie zaimportować i skompilować projekt.źródło
.idea
jako całość nigdy nie powinno być ignorowane. Zawiera kilka plików, takich jak reguły szarż i słowniki niestandardowe, które zespół absolutnie chciałby sprawdzić w kontroli wersji.Są to pliki projektu, które zawierają informacje o module i metadane.
Po prostu dodaj
*.iml
do.gitignore
.W Android Studio: naciśnij CTRL+, F9aby odbudować swój projekt. Brakujące
*.iml
pliki zostaną wygenerowane.źródło
Pliki te są tworzone i używane przez edytor Android Studio.
Nie trzeba rejestrować tych plików w celu kontroli wersji.
Git używa pliku .gitignore, który zawiera listę plików i katalogów, aby poznać listę plików i katalogów, które nie muszą być rejestrowane.
Android studio automatycznie tworzy pliki .gitingnore z listą wszystkich plików i katalogów, które nie muszą być rejestrowane w żadnej kontroli wersji.
źródło