Je vais utiliser Subversion pour le contrôle de la source sur une nouvelle application web J2EE. Quelle structure de répertoire recommanderez-vous pour organiser le code, les tests et la documentation?Structure de répertoire de contrôle de source recommandée?
Répondre
J'ai l'habitude
Project Directory src - actual source doc - documentation lib - libraries referenced from source dep - installation files for dependencies that don't fit in lib db - database installation script
En collaboration avec Visual Studio, je ne suis pas sûr que cela fonctionne de la même dans le monde java. Mais j'ai l'habitude de mettre des choses dans différents dossiers de projet dans src. Pour chaque projet source, il existe un projet de test distinct. Les fichiers de construction vont dans le répertoire principal du projet. D'habitude, je place un fichier README là aussi pour documenter la configuration du projet s'il ne suffit pas de vérifier.
EDIT: C'est la structure pour une caisse de travail unique du projet. Il sera dupliqué pour chaque branche/étiquette dans votre système de contrôle de révision (rappelez-vous, dans la plupart des systèmes SVN, les copies sont bon marché). L'exemple ci-dessus sous Subversion ressemblerait à ceci:
/project
/trunk
/src
/doc
/...
/branches
/feature1
/src
/doc
/...
/feature2
/src
/doc
/...
J'ai trouvé quelques vieilles questions ici sur le SO qui pourrait être intéressant pour vous:
- Whats a good standard code layout for a php application
- contient un lien vers un article sur Scalable and Flexible Directory Structure for Web Applications (se concentrer sur PHP, cependant)
- How to structure a java application, in other words: where do I put my classes?
- Structure of Projects in Version Control
J'utilise Eclipse pour créer des applications Web J2EE et cela va créer la structure de projet suivante:
WebAppName\
\lib
\src
\tests
etc...
Je voudrais ensuite créer un dossier SVN sur notre tronc appelé WebAppNameProject. Dans ce dossier je créerais des dossiers appelés WebAppNameSource, Documentation etc. Dans le dossier WebAppNameSource je placerais la source de projet générée par Eclipse. Ainsi, j'aurais la structure de dossier suivante dans SVN:
\svn\trunk\WebAppNameProject
\WebAppNameSource
\lib
\src
\tests
etc...
\Documentation
Espérons que cela aide.
Pour développer ce que Mendelt Siebenga a suggéré, j'ajouterais aussi un répertoire web
(pour les fichiers JSP, WEB-INF, web.xml, etc.). Les tests doivent aller dans un dossier nommé test
qui est un frère du dossier principal src
- de cette façon, vos classes de test unitaires peuvent avoir le même nom de paquet que le code source testé (pour faciliter les situations où vous voulez tester méthodes protégées ou des classes, par exemple ... voir le JUnit FAQ for this, et cette question également sur Where should I put my test files?). Je n'ai pas eu beaucoup d'utilisation pour moi-même, mais un projet Maven créera également un dossier resources
à côté du dossier src pour le code non-source que vous voulez empaqueter/déployer avec le code source principal - des choses comme comme les fichiers de propriétés, les regroupements de ressources, etc. Votre kilométrage peut varier sur celui-ci.
Qu'en est-il des répertoires pour le tronc, les branches et les balises? –
Bentley - voir éditer. –