java - pom - ¿Estructura de directorio de control de fuente recomendada?
introduccion a maven (4)
Encontré algunas preguntas viejas aquí en SO que podrían ser interesantes para ti:
- ¿Cuál es un buen diseño de código estándar para una aplicación de php?
- Contiene un enlace a un artículo sobre la estructura de directorios escalable y flexible para aplicaciones web (sin embargo, se centran en PHP)
- Cómo estructurar una aplicación java, en otras palabras: ¿dónde pongo mis clases?
- Estructura de Proyectos en Control de Versión
Voy a utilizar Subversion para el control de fuente en una nueva aplicación web J2EE. ¿Qué estructura de directorios recomendarás para organizar el código, las pruebas y la documentación?
Para ampliar lo que sugirió Mendelt Siebenga, también agregaría un directorio web
(para archivos JSP, WEB-INF, web.xml, etc.).
Las pruebas deben ir en una carpeta llamada test
que sea un hermano de la carpeta principal src
; de esta forma, las clases de prueba de la unidad pueden tener el mismo nombre que el código fuente que se está probando (para facilitar las situaciones en las que desee probar clases o métodos protegidos) , por ejemplo ... vea las preguntas frecuentes sobre JUnit para esto , y esta pregunta también sobre ¿Dónde debo poner mis archivos de prueba? ).
No he tenido mucho uso para mí, pero un proyecto Maven también creará una carpeta de resources
junto con la carpeta src para código no fuente que desea empaquetar / implementar junto con el código fuente principal, cosas como archivos de propiedades, paquetes de recursos, etc. Su millaje puede variar en este.
Yo uso Eclipse para crear aplicaciones web J2EE y esto creará la siguiente estructura de proyecto:
WebAppName/
/lib
/src
/tests
etc...
Luego crearía una carpeta SVN en nuestro trunk llamada WebAppNameProject. Dentro de esta carpeta, crearía carpetas llamadas WebAppNameSource, Documentation, etc. Dentro de la carpeta WebAppNameSource colocaría el origen del proyecto generado por Eclipse. Por lo tanto, tendría la siguiente estructura de carpetas en SVN:
/svn/trunk/WebAppNameProject
/WebAppNameSource
/lib
/src
/tests
etc...
/Documentation
Espero que esto ayude.
usualmente tengo
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 el trabajo con Visual Studio, no estoy seguro de si esto funciona igual en el mundo de Java. Pero normalmente pongo cosas en diferentes carpetas de proyectos en src. Para cada proyecto fuente hay un proyecto de prueba por separado. Los archivos de compilación van en el directorio principal del proyecto. Normalmente pongo un LÉAME allí también, documentando cómo configurar el proyecto si necesita algo más que solo echarle un vistazo.
EDITAR: Esta es la estructura para una sola comprobación de trabajo del proyecto. Se duplicará para cada rama / etiqueta en su sistema de control de revisiones (recuerde, en la mayoría de los sistemas SVN, las copias son baratas). El ejemplo anterior bajo Subversion se vería así:
/project
/trunk
/src
/doc
/...
/branches
/feature1
/src
/doc
/...
/feature2
/src
/doc
/...