Je suis maintenant passé à Android Studio et enregistrer mes projets dans Git avec Source Tree. Chaque fois que j'ajoute ou supprime une bibliothèque de mon module, son fichier .iml change également. Cela n'a vraiment pas d'importance si je valide le * .iml car ils sont générés automatiquement dans les autres Android Studio. Cependant, ici il dit que vous devez stocker * .iml. Ma question est, avons-nous vraiment besoin de partager notre * .iml avec les autres? Si oui, pourquoi?
La meilleure pratique générale consiste à:
La réponse est donc: il vaut mieux ignorer ces fichiers pour VCS.
Oui, les fichiers .iml conviennent au contrôle de version (voir ce commentaire )
Il est également vrai de rendre les projets aussi indépendants de l'IDE que possible, cependant, le partage de fichiers .iml ne casse rien pour les personnes développant avec un autre IDE. Pour eux, ce ne sont que des fichiers relativement petits qui ne les concernent pas.
Une bonne pratique pour les équipes utilisant différents IDE simultanément est de stocker les fichiers de projet de chaque IDE dans le VCS, en excluant uniquement ceux qui contiennent des chemins, des variables d'environnement, etc. spécifiques à un environnement de développeur unique. De cette façon, toute personne utilisant l'un des IDE pris en charge peut profiter des avantages d'une configuration partagée appropriée, comme par exemple:
Il y a plus de cas d'utilisation, selon les IDE spécifiques en jeu. Edit: Pour IntelliJ, voir aussi cette FAQ
Je suis d'accord que ce sont des fichiers dépendants de l'IDE sans rapport avec le code et qu'ils ne doivent pas être partagés. Mais, alors vous devez savoir comment les régénérer.
Vous pouvez rencontrer des situations alors que votre dépôt à distance ne contient pas ces fichiers et lorsque vous clonez le code et l'ouvrez dans IDEA, cela montre simplement un tas d'erreurs. Pourquoi? *.iml
les fichiers ne sont pas régénérés.
Vous devez importer à partir de IDEA avec "Fichier" - "Nouveau" - "Projet à partir du contrôle de version". Seul cela peut générer les fichiers pour vous.