Pregunta

Tenemos montón de clases generadas automáticamente que son sobre todo talones de Axis2, esqueletos, etc. Para algunos WSDL complicados, Axis2 genera una tonelada de java-judías, trozos etc. Y estoy seguro de que hay otros casos también cuando se utiliza la generación automática.

Por ahora tratamos a estos como otros miembros de la primera clase de nuestra base de código y se almacenan en los mismos paquetes.

Sin embargo cuando se hace refactorización, limpieza, etc se hace difícil eliminar a las advertencias que vienen de estas clases generadas automáticamente. Por ejemplo, si yo estoy tratando de limpiar el código con el fin de utilizar los genéricos Java1.5, no hay una buena manera de saber cuántas de estas clases son los nuestros ofensivos vs siendo generada automáticamente.

¿Debo separar estas partes autogenerados a cabo en un paquete diferente? ¿Cómo ustedes almacenen este tipo de artefactos en el repositorio?

EDIT: Veo 'generan durante el proceso de construcción' en un buen número de respuestas a continuación. Mientras veo los beneficios de hacer que, yo no acabo de ver cómo puedo escapar de un registro repositorio.

Mi código tiene compilar dependencias de tiempo en algunas de estas clases y para mí, una acumulación durante el desarrollo es un 'ctrl-s' en eclipse. Utilizamos hormiga-scripts para generar la compilación, pruebas realizadas y generar entregables.

¿Fue útil?

Solución

Puede mantener los mismos paquetes pero el uso de una carpeta de origen diferente (algo así como-src generado), que es lo que hacemos. En realidad estoy en la valla sobre la idea de ahorro de código generado en el repositorio de código fuente. Lo hacemos como una conveniencia para otros desarrolladores en el proyecto, pero por lo general tiene sentido para regenerar el código fuente como parte del proceso de construcción. Si el código generado es poco probable que cambie, a continuación, utilizando un proyecto independiente y generando un frasco podría ser más práctico.

Otros consejos

Resumen de las mejores prácticas:

  • Que sea repetible
    • Crear código generado como parte de un proceso de construcción.
    • No marque código generado en control de código fuente. (No echa en la fuente. Por ejemplo WSDL)
  • Mantenga código generado separado de código administrado
    • Utilice una carpeta de origen diferente para el resultado generado.
    • Entregar una .jar separada para que este genera código se convierte en una dependencia.
    • Considere el uso de un proyecto IDE diferente (o módulo Maven)

Pongo estos archivos en un proyecto propio. De esta manera, puedo añadir el archivo de creación, todos los parches que necesito, etc. en un solo lugar y apagar todas las advertencias para el código generado.

Si usted les está registrarse en el sistema de control de código fuente, No . Les hacen obtener re-generados por un paso de generación. Si son generados a partir de un WSDL, compruebe en el WSDL, no el código resultante.

Yo recomiendo tener que generar un paso de generación .jar completamente separado para el código generado y, a continuación, eliminar los archivos de origen, sólo para que sea tan poco probable como mantenedores posible que intentarán editar a mano la fuente de auto-generado.

De esta manera, sus actividades de refactorización verán el código autogenerado como como una biblioteca de terceros en lugar de origen para ser manipulado.

Para cada conjunto de artefactos generados, crear un nuevo proyecto que lleva a cabo la generación, a continuación, agrupa los artefactos arriba en JAR y de la fuente de archivos ZIP, y luego hacer referencia a ellos desde su aplicación. Mantiene las cosas bien y por separado, y hace hincapié en el hecho de que los artefactos generados no son para cambiar por el IDE.

con Maven y axistools-maven-plugin, las fuentes generadas son lugares en una carpeta de origen diferente en el directorio 'objetivo'. Este directorio de destino es donde experta genera todos los archivos y esas cosas, por lo que se puede limpiar.
Esto es muy conviniened, ya que los archivos generados también aparece en una carpeta de origen diferente dentro del IDE.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top