2008-09-18 27 views
8

Tengo aquí 300 líneas de archivo NAnt largas y es bastante complicado. Me pregunto si existe alguna guía de estilo para escribir scripts NAnt y cuáles son las mejores prácticas para hacerlo.Mejores prácticas de NAnt

¿Algún consejo?

Respuesta

5

No conozco ninguna guía de estilo publicada, pero ciertamente puedo compartir mi experiencia. Puede usar muchas de las mismas técnicas utilizadas en otros entornos de programación, como hacer que el código sea modular y dividirlo en varios archivos. En el entorno que he configurado, cada proyecto se presenta de la siguiente manera: "[Nombre del proyecto] \ Común" contiene un archivo de compilación común que está vinculado a casi todos mis proyectos. También tengo un conjunto de objetivos de subversión comunes almacenados en un archivo allí. El subdirectorio "Común" es en realidad un svn: externo, por lo que se mantiene automáticamente sincronizado en varios proyectos. En el archivo Common.build, hay muchas propiedades medioambientales, además de algunos conjuntos de archivos reutilizables, algunos objetivos reutilizables y un objetivo "StartUp" que es utilizado por cada objetivo "StartUp" de los proyectos.

"[ProjectName] \ Project.build" contiene todas las propiedades y los catálogos de archivos específicos de proyectos, algunos de los cuales anulan la configuración de Common.build. Este archivo también contiene un objetivo de "inicio" que configura algunas configuraciones de tiempo de ejecución, como la información de la versión del ensamblado y las rutas dependientes. También ejecuta el objetivo "Inicio" de Common.build. Este archivo incluye el archivo Common.build.

"[ProjectName] [AssemblyName] .build" contiene todas las configuraciones y objetivos específicos de un ensamblaje individual. Este archivo incluye Project.build, que a su vez incluye Common.build.

Esta jerarquía funciona bien en nuestra situación, lo que nos lleva a construir una versión troncal y varias versiones de ramificación de un producto en un servidor de integración continua. Tal como está ahora, las únicas diferencias entre los scripts para compilar la versión troncal y cualquiera de las ramas son solo un puñado de líneas.