- Project tools
-
-
-
- How do I...
-
| Category |
Featured projects |
| scm |
Subversion,
Subclipse,
TortoiseSVN,
RapidSVN
|
| issuetrack |
Scarab |
| requirements |
xmlbasedsrs |
| design |
ArgoUML |
| techcomm |
SubEtha,
eyebrowse,
midgard,
cowiki |
| construction |
antelope,
scons,
frameworx,
build-interceptor,
propel,
phing
|
| testing |
maxq,
aut
|
| deployment |
current |
| process |
ReadySET |
| libraries |
GEF,
Axion,
Style,
SSTree
|
| Over 500 more tools... |
|
Diseño > Organización de Código Fuente y Sistemas de Compilación
Información de la versión
| Proyecto: |
NOMBREDELPROYECTO |
| Número Interno de Versión: |
X.Y.Z |
| Documentos Relacionados: |
LIGAS A ESTÁNDARES RELEVANTES
LIGAS A OTROS DOCUMENTOS
|
Resumen
TAREAS: Conteste las preguntas que se encuentran abajo para ayudar a definir la organización de su
código fuente y procesos de compilación. Se ha incluido texto de ejemplo. Añada
o elimine texto según sea necesario. Por ejemplo, no todos los proyectos desean ser independientes de la
plataforma.
- ¿Cuáles son los hechos más importantes que un desarrollador debería saber
acerca de esta organización de código fuente y el sistema de compilación?
- Esta organización sigue de forma muy libre el estándar propuesto en la documentación de Tomcat y
es muy similar a la organización usada en muchos proyectos open-source
en la Apache Software Foundation.
- ¿Cuáles son los objetivos categorizados de esta organización de código fuente y el sistema de compilación?
-
- Separación de archivos por tipo
- La separación de los archivos controlados por versión de los archivs generados en el proceso
de compilación
- Compatibilidad con procesos de compilación estándar
- Independencia de Plataforma
Directorios y archivos clave en copias de trabajo para desarrollo
TAREAS: Describa el propósito de cada directorio que aparece en
una copia de trabajo de desarrollo, incluya también cualquier archivos que son importantes para
la estructura general o el proceso de compilación.
| Path | VC | Descripción |
| build.xml |
Sí |
Archivo compilado |
| build.properties |
Sí |
Archivo de propiedades de compilación |
| src/ |
Sí |
Código fuente |
| src/java/ |
Sí |
Código fuente Java |
| src/java/[paquetes anidados]/ |
Sí |
Código fuente Java de clases en cada paquete |
| src/java/[paquetes anidados]/test/ |
Sí |
Código fuente de Java para pruebas unitarias de las clases en cada paquete |
| web/ |
Sí |
Archivos HTML y JSP |
| web/css/ |
Sí |
Archivos CSS, si existen |
| web/images/ |
Sí |
Archivos de imágenes, si existen |
| web/WEB-INF/web.xml |
Sí |
Archivo de configuración de la aplicación web en Java |
| conf/ |
Sí |
Archivos de configuración, si existen |
| data/ |
Sí |
Datos iniciales a cargar en la base de datos y/o el sistema de archivos, si existen |
| lib/ |
Sí |
Librerías reusadas por este proyecto, si existen |
| scripts/ |
Sí |
Utilerías de línea de comando usadas en este proyecto, si existen |
| www/ |
Sí |
Documentos del proyecto (por ejemplo, resumenes, plan, requerimientos y diseño) |
| build/ |
No |
Salida al proceso de compilación |
| build/WEB-INF/classes/ |
No |
Salida al código compilado por el proceso de compilación |
| dist/docs/api/ |
No |
Documentación de la API producida por el proceso de compilación |
| dist/NOMBREDELPROYECTO-VERSION.war |
No |
Archivo web de clases distribuible y archivos de configuración generados por el proceso de compilación |
Compilaciones de trabajo
TAREAS: Describa las compilaciones de trabajo que los desarrolladores utilizarán diariamente
en su trabajo. Los ejemplos abajo deberán servir para la mayoría de los proyectos.
| Destino | Descripción |
| compile = default |
Compila el código fuente en Java y crea archivos .class
en el directorio "build". |
| dist |
Empaca el sistema para distribución/entrega a servidores o a
usuarios finales. Específicamente, crea archivos. war de
clases compiladas y archivos de configuración. |
| install |
Coloca el código ejecutable en un lugar donde puede ser ejecutado.
Especificamente, copia los archivos .war en el directorio webapps de Tomcat
para utilizarlo. Deberá reiniciar Tomcat para usarlo o usar
la liga de "refrescar" en el Administrador de Tomcat. |
| javadoc |
Genera documentación API de Java en "build/docs/api/". |
| clean |
Borra los archivos generados por comandos previos de compilación.
Los archivos bajo control de versión no son tocados. |
Opciones de Configuración para Compilación
| Propiedad | Descripción |
| app.nombre |
El nombre de esta aplicación. Se recomienda usar una palabra corta, usada
en el nombre los archivos de los paquetes a generar. Específicamente el archivo .war,
y será usado para accesar la aplicación en
http://localhost:8080/APP.NOMBRE/ |
| app.version |
Número de versión de esta entrega. Usada en el nombre de los archivos de paquetes
generados, específicamente el archivo .war. |
| webapps.path |
Path a los directorios "webapps" de Tomcat. Por defecto apunta a
C:\Program Files\Apache Group\Tomcat 4.1\webapps\ |
Estas propiedades del sistema de compilación pueden ser modificadas editando
el archivo build.properies.
Lista de Pendientes de la Organización de Código Fuente y Sistemas de Compilación
- Separación de archivos por tipo: ¿Los archivos están separados por tipo?
- Sí. Excepto los archivos de aplicación JSP y HTML que están en el mismo
directorio, lo cual es conveniente porque algunas veces cambiamos un archivo HTML
en uno JSP.
- Separación de archivos controlados por versión y los que no llevan control:
¿A qué punto se ha realizado esto?
- Ha sido terminada. Todo está bajo control de versión
excepto el directorio "build". Ningún paso en el proceso de compilación
debería crear o modificar ningún archivo en cualquier otro directorio.
- Compatibilidad con procesos de compilación estándar: ¿Hasta qué punto se ha realizado esto?
- Bien hasta el momento. Podemos usar los archivos build.xml que son muy cercanos
a los ejemplos que vienen con Ant. Una diferencia es que mantenemos
nuestra documentación técnica bajo "www" en lugar de usar
"docs". También hemos evitado el uso de tareas personalizadas en Ant.
- Independencia de Plataforma: ¿Hasta qué punto se ha realizado esto?
- Estamos usanddo Ant, el cual es en si mismo independiente de la plataforma. Los
nombres de los archivos y directorios deberían servir en cualquier plataforma
debido a que no se utiliza diferenciación de mayúsculas. Asumimos que
la utilidad de los scripts en el directorio "scripts" soportan todas las plataformas necesarias
y no hemos creado directorios para versiones diferentes de estos archivos
para plataformas específicas.
Compañía Propietaria
|