2012-02-22 20 views
6

Estoy trabajando en un proyecto que tiene que ejecutarse en Java SE 5 y Java SE 6. Recientemente comencé a usar una herramienta que agrega @Generated anotaciones al código generado, y quiero mantener esas anotaciones. Parece que javax.annotation.Generated está en Java 5 EE y Java 6 SE and later, pero no está en la API de Java 5 SE.¿Cómo añado javax.annotation.Generated a Java SE 5?

¿Cuál es la mejor manera de incluir javax.annotation.Generated cuando lo envío al cliente, por lo que se ejecutará en Java SE 5 y Java SE 6 sin ningún problema? ¿Solo necesito incluir un jarfile adicional? Si es así, ¿en cuál vive @Generated?

Respuesta

11

Puede obtener javax.annotation.Generated, junto con varias otras clases de ese paquete, del repositorio central de Maven al this location. Simplemente puede descargar los JAR, no necesita usar Maven para obtenerlos.

Respuesta cortesía de GrepCode.

+0

Gracias! Puntos de bonificación para el consejo de GrepCode. – rob

+3

Gracias a @skaffman. Para una ** construcción de Gradle ** la dependencia debería ser 'compile 'org.glassfish: javax.annotation: 10.0-b28'' luego. – JJD

+2

también disponible con 'compile 'javax.annotation: jsr250-api: 1.0'' – nicopico

4

De acuerdo con javax.annotation.Generated javadoc, su retención es Fuente, por lo que la anotación no se compilará en sus clases (y las clases de resultados con y sin esta anotación son las mismas). Para que sus clientes nunca necesiten ningún archivo jar que contenga esta anotación, siempre que distribuya clases compiladas.

+1

Gracias por la información adicional; Es bueno saberlo. Me olvidé de mencionarlo en la pregunta, pero también proporcionamos las versiones de este cliente. – rob

1

Puede comentarlas, solo se conservan en el nivel de fuente.

+0

Sin duda, una solución válida si solo tuviera que generar el código una vez y nunca más, pero también me preocuparía cualquier dolor de cabeza que esto pueda causar a los futuros mantenedores que no se dan cuenta de que solo necesitan recomendar las anotaciones después de regenerar el código. – rob

+0

Si está utilizando eclipse, puede agregar un constructor que los elimine o los comente usando sed, por ejemplo. O un script de compilación funcionaría igual de bien. – MahdeTo

+0

Cierto, pero aún más esfuerzo que simplemente agregar el archivo jar. Gracias por la solución "fuera de la caja" sin embargo. :) – rob

Cuestiones relacionadas