Ich werde Subversion für die Quellcodeverwaltung einer neuen J2EE-Webanwendung verwenden. Welche Verzeichnisstruktur empfehlen Sie für die Organisation von Code, Tests und Dokumentation?Empfohlene Quellensteuerverzeichnisstruktur?
Antwort
Ich habe in der Regel
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
In der Arbeit mit Visual Studio, ich bin nicht sicher, ob dies das gleiche in der Java-Welt funktioniert. Aber ich stecke normalerweise Sachen in verschiedene Projektordner in src. Für jedes Quellprojekt gibt es ein separates Testprojekt. Build-Dateien gehen in das Hauptverzeichnis des Projekts. Normalerweise lege ich dort auch eine README ein, um zu dokumentieren, wie man das Projekt einrichtet, wenn es mehr als nur das Auschecken braucht.
BEARBEITEN: Dies ist die Struktur für eine einzelne funktionierende Kasse des Projekts. Es wird für jeden Zweig/jedes Tag in Ihrem Versionskontrollsystem dupliziert (denken Sie daran, dass Kopien in den meisten SVN-Systemen billig sind). Das obige Beispiel unter Subversion würde wie folgt aussehen:
/project
/trunk
/src
/doc
/...
/branches
/feature1
/src
/doc
/...
/feature2
/src
/doc
/...
ich einige alte Fragen hier auf SO, dass könnte für Sie interessant sein:
- Whats a good standard code layout for a php application
- Enthält einen Link zu einem Artikel auf Scalable and Flexible Directory Structure for Web Applications (Fokus auf PHP, obwohl)
- How to structure a java application, in other words: where do I put my classes?
- Structure of Projects in Version Control
Ich benutze Eclipse J2EE Web-Anwendungen zu erstellen, und dies wird die folgende Projektstruktur erstellen:
WebAppName\
\lib
\src
\tests
etc...
dann würde ich ein SVN-Ordner auf unserem Stamm WebAppNameProject genannt erstellen. Innerhalb dieses Ordners würde ich Ordner namens WebAppNameSource, Documentation usw. erstellen. Innerhalb des WebAppNameSource-Ordners würde ich die von Eclipse generierte Projektquelle platzieren. Somit hätte ich folgende SVN-Ordnerstruktur:
\svn\trunk\WebAppNameProject
\WebAppNameSource
\lib
\src
\tests
etc...
\Documentation
Hoffe das hilft.
Um zu erweitern, was Mendelt Siebenga vorgeschlagen, würde ich auch ein web
Verzeichnis hinzufügen (für JSP-Dateien, WEB-INF, web.xml, etc).
Tests sollten in einem Ordner gehen test
benannt, die ein Geschwister des Haupt src
Ordner ist - auf diese Weise Ihre Einheit Testklassen den gleichen Paketnamen haben kann wie der Quellcode (zu erleichtern, mit Situationen getestet werden, wo Sie testen möchten geschützte Methoden oder Klassen, zum Beispiel ... siehe die JUnit FAQ for this, und diese Frage auch auf Where should I put my test files?).
Ich hatte selbst nicht viel davon, aber ein Maven-Projekt wird auch einen resources
Ordner neben dem src-Ordner für Nicht-Quellcode erstellen, den Sie zusammen mit dem Hauptquellcode packen/deployen wollen - Dinge wie als Eigenschaftendateien, Ressourcenbündel usw. Ihre Laufleistung kann davon abweichen.
Was ist mit den Verzeichnissen für den Stamm, Zweige und Tags? –
Bentley - siehe bearbeiten. –