Archivos fuente y compilados¶
Proyecto | SuiteSET3 |
Descripción | Plantilla para proyectos basada en ReadySET y Métrica 3. |
Desarrollo | project:suiteset3-dev versión suiteset3-dev:version#1 |
Plazos vigentes | FECHA INICIO - FECHA FINALIZACIÓN |
Fecha edición | 30/10/2024 |
Relacionados |
Ejemplo de build.xml para Tomcat ENLACES A ESTÁNDARES RELEVANTES |
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.