/ / Il file jar con annotazioni può essere escluso dal percorso di classe? - java, annotazioni, classloader

Il file jar con annotazioni può essere escluso dal classpath? - java, annotazioni, classloader

Abbiamo una grande applicazione Java. Uno dei miei colleghi ora sta usando questa applicazione come libreria per un resto-api su jboss. A tale proposito, abbiamo dovuto aggiungere un'annotazione @JsonIgnore ad alcuni metodi in alcune classi. Devo avere un'importazione nelle classi come segue perché questo funzioni:

import org.codehaus.jackson.annotate.JsonIgnore;

Questa annotazione è inclusa nel file jarJackson-core-asl-1.9.13.jar Ora la domanda è: devo includere il file jar per tutti i nostri clienti che usano il programma come applicazione autonoma? O può essere omesso poiché si tratta solo di anntazioni? La semplice risposta a questa domanda è che ho provato a eseguire il mio programma come programma autonomo senza jackson-core-asl-1.9.13.jar nel percorso di classe, e sembra funzionare bene. Ma quello che voglio davvero sapere è se lo farà sempre, indipendentemente dalla macchina virtuale in esecuzione. Se un aggiornamento Java fa fallire l'applicazione, a causa delle annotazioni sui metodi o dell'importazione mancante, il risultato sarebbe disastroso, poiché molti clienti utilizzano questa applicazione. Quindi, come vengono risolte le dichiarazioni di importazione e le annotazioni dal classloader?

risposte:

0 per risposta № 1

Sono passati 3 anni, ma ho bisogno di questa risposta.

Dovrebbe funzionare, secondo JSR-175 e il database dei bug di Oracle. Dopo molte ricerche mi sono imbattuto in questa affermazione in una segnalazione di bug per un vecchio JRE:

Secondo il cavo delle specifiche JSR-175, devono essere annotazioni sconosciute ignorato da getAnnotations.

Questo è il link: http://bugs.java.com/view_bug.do?bug_id=6322301

Sembra che puoi compilare una classe con annotazioni e se le annotazioni non sono presenti in fase di esecuzione, non creerà problemi.