2012-02-22 8 views
6

Sto lavorando a un progetto che deve essere eseguito su Java SE 5 e Java SE 6. Recentemente ho iniziato a utilizzare uno strumento che aggiunge annotazioni @Generated al codice generato e desidero mantenere quelle annotazioni. Sembra che javax.annotation.Generated sia in Java 5 EE e Java 6 SE and later, ma non sia nell'API Java 5 SE.Come si aggiunge javax.annotation.Generated a Java SE 5?

Qual è il modo migliore per includere javax.annotation.Generated quando lo invio al cliente, quindi verrà eseguito su Java SE 5 e Java SE 6 senza problemi? Devo solo includere un extra jarfile? In tal caso, quale è lo standard @Generated?

risposta

11

È possibile ottenere javax.annotation.Generated, insieme a varie altre classi da tale pacchetto, dal repository centrale Maven a this location. Puoi semplicemente scaricare i JAR, non è necessario utilizzare Maven per ottenerli.

Risposta per gentile concessione di GrepCode.

+0

Grazie! Punti bonus per il suggerimento GrepCode. – rob

+3

Grazie a @skaffman. Per una ** build Gradle ** la dipendenza dovrebbe essere 'compile 'org.glassfish: javax.annotation: 10.0-b28'' quindi. – JJD

+2

disponibile anche con 'compile 'javax.annotation: jsr250-api: 1.0'' – nicopico

4

In base a javax.annotation.Generated javadoc, la sua conservazione è Sorgente, quindi l'annotazione non verrà compilata nelle classi (e le classi di risultati con e senza questa annotazione sono uguali). Quindi i tuoi clienti non hanno mai bisogno di alcun file jar contenente questa annotazione, a patto di distribuire classi compilate.

+1

Grazie per le informazioni extra; buono a sapersi. Ho dimenticato di menzionarlo nella domanda, ma diamo anche questo rilascio alla fonte del cliente. – rob

1

È possibile semplicemente commentarli, vengono mantenuti solo a livello di origine.

+0

Sicuramente una soluzione valida se dovessi solo generare il codice una volta e mai più, ma sarei anche preoccupato di eventuali mal di testa che potrebbero causare futuri manutentori che non si rendono conto che hanno solo bisogno di ricomporre le annotazioni dopo la rigenerazione del codice. – rob

+0

Se si utilizza eclipse, è possibile aggiungere un builder che rimuove o commenta utilizzando sed, ad esempio. O uno script di compilazione funzionerebbe altrettanto bene. – MahdeTo

+0

Vero, ma ancora più sforzo rispetto all'aggiunta del file jar. Grazie per la soluzione "fuori dalla scatola". :) – rob

Problemi correlati