Question

Quel est le meilleur moyen de permettre à une équipe de programmeurs d’utiliser Netbeans, Eclipse et IntelliJ sur le même projet, en éliminant ainsi "le meilleur IDE"? question.

Quels fichiers doivent ou ne doivent pas être archivés dans le contrôle de code source?

Était-ce utile?

La solution

Je pense que le meilleur moyen est de rendre le processus de construction indépendant de IDE. Cela signifie que votre projet ne doit pas s'appuyer sur des fichiers spécifiques à l'EDI pour construire, mais plutôt utiliser un système de construction externe, tel que Apache. Maven , Apache Ant , ou même créer ou personnaliser des scripts. Maven est pris en charge par les IDE Java les plus répandus, directement ou via des plug-ins.

Si vous ne souhaitez pas utiliser de systèmes de construction externes, vous devez au moins simplifier au maximum la configuration du projet (c.-à-d. en disposant de dossiers standard pour les bibliothèques partagées et autres dépendances). Dans le passé, lorsque je travaillais avec des équipes composées de plusieurs IDE, je passais beaucoup plus de temps à résoudre les dépendances car les conditions préalables à la construction du projet évoluaient avec le temps. Dans le pire des cas, vous risquez même de vous retrouver avec des développeurs qui ne cherchent pas à obtenir la dernière version du référentiel de contrôle de version, car ils pensent que la configuration du nouveau projet est fastidieuse.

Si votre projet comporte de nombreuses dépendances de bibliothèque, je pense que c'est une bonne idée de les rendre disponibles sous forme binaire dans le référentiel de contrôle de version. Ainsi, les utilisateurs n'ont pas à résoudre toutes les dépendances des dépendances et ainsi de suite pour créer un seul projet. Cela nécessite toutefois que vous ayez une personne responsable de la tenue du "service officiel". binaires mis à jour chaque fois qu'ils changent. (C’est à peu près la même philosophie que celle utilisée par le référentiel Maven, mais les principes peuvent être appliqués manuellement même lorsque vous n’utilisez pas Maven.)

Autres conseils

Eh bien, c’est une belle question à réponse automatique.

Les fichiers à ne pas vérifier dans le contrôle de source sont des fichiers qui ont à voir avec les IDE eux-mêmes.

Laissez les développeurs générer ces fichiers.

Si vous utilisez Maven, il peut générer les fichiers tels que le .project et le .classpath d'Eclipse. Eclipse est en général très facile à utiliser avec une structure de fichier de base (avec la nouvelle option Java Project ).

Je pense que Maven est également supporté par Netbeans, mais je ne suis pas sûr d’IntelliJ

Le site de Maven est maven.apache.org .

Pour chaque IDE ayant plus d'un développeur, archivez tous les fichiers de support. Pourquoi réinventer la roue à chaque bureau.

Je l'ai fait avec de nombreux IDE différents et je n'ai pas encore vu de conflit de nom de fichier.

En fait, même lorsqu'un seul développeur utilise un IDE particulier, il est avantageux de mettre à jour les fichiers de support, pour la même raison que vous modifiez les autres fichiers de votre environnement de développement: historique, diffing, commentaires , etc.

Pour Eclipse, il s’agit des fichiers .classpath et .project.

Mon équipe utilise Maven et il est déconseillé aux développeurs de vérifier les fichiers spécifiques à Eclipse. Parce qu'ils peuvent être générés à partir de Maven, ces fichiers sont redondants.

En outre, la vérification des fichiers spécifiques à un projet semble gagner du temps, mais elle est généralement pénible en raison des variations dans les postes de travail des développeurs, ce qui entraîne une perte de temps pour la résolution des conflits dans les fichiers spécifiques à l'EDI. La seule façon de contourner ce problème est d’obliger tout le monde à configurer son environnement de la même manière, ce qui va à l’encontre de l’approche agnostique de l’IDE.

L'utilisation de plusieurs jeux d'outils au sein d'une même équipe de projet est soumise à de nombreuses considérations. Par exemple, mon équipe a des développeurs Java qui utilisent IntelliJ et la plupart des développeurs front-end (JSP / CSS / HTML) qui utilisent Eclipse. Nous sommes en train de migrer les utilisateurs Eclipse vers IntelliJ en raison de certains plugins IntelliJ que nous avons développés et qui fournissent une prise en charge étendue de notre environnement. Nous n'allons pas développer les plugins pour plusieurs plates-formes, nous standardisons donc IntelliJ dans son ensemble.

En termes de fichiers spécifiques, je peux parler à IntelliJ. Nous avons vérifié nos fichiers .ipr et nos fichiers .iml. Ne pas archiver les fichiers .iws. Si vous avez également des utilisateurs Eclipse, configurez votre projet IntelliJ pour lire / stocker les informations de dépendance dans le fichier .classpath et les transmettre à votre VCS.

Nous prenons volontairement en charge plusieurs IDE à partir du même référentiel SVN. Nous voulions nous assurer que, si une nouvelle personne rejoignait l'équipe ou si quelqu'un devait commencer à travailler sur une nouvelle machine, nous voulions qu'ils puissent extraire le code base, l'importer dans l'IDE et disposer immédiatement d'un travail. configuration possible.

Cela signifie que les développeurs ne doivent pas valider leurs modifications dans les fichiers de l'EDI. Tout le reste (par exemple, src, test, lib, etc.) devient l’ensemble que nous mettons à jour et que nous validons tous les jours.

L’avantage supplémentaire est que nous avons complètement éliminé les guerres de l’IDE: les gens de Netbeans et d’Eclipse vivent en parfaite harmonie (regardant de travers le peuple d’IntelliJ, mais bon ...; -).

Pour plus de commentaires et de réponses sur ce sujet, voir cette question (Comment gérez-vous les différents IDE Java et svn?)

Nous renommons nos fichiers IDE pour l’archivage avec une extension supplémentaire .deletethis ou similaire. Quand une nouvelle personne vérifie le projet, elle supprime simplement l'extension supplémentaire et est prête à partir. De cette façon, nous évitons les conflits de contrôle de source avec les fichiers de projet lorsque les utilisateurs modifient leur environnement. Et vous n'avez pas à vous soucier d'éduquer les nouveaux développeurs à ne pas archiver ces fichiers.

En règle générale, je considérerais cela comme une mauvaise idée. Je ne sais pas de quel type d’environnement il s’agit (peut-être en open source?), Mais ce serait vraiment nul de supporter plusieurs IDE. Une chose que je recommanderais, si cela est inévitable, serait de standardiser vos versions dans des scripts ant. Si vous avez un grand nombre de dépendances, c'est peut-être le moyen le plus simple d'obtenir une construction prévisible sur toutes les plateformes.

S'il s'avère qu'un des IDE est RAD (basé sur eclipse), il existe un dossier complet appelé .settings que vous ne souhaitez pas inclure dans le GDS.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top