Domanda

Ho un progetto Java e internamente è dipendente asm jar. Stranamente, io non so nemmeno perché il mio progetto è in qualche modo dipendente da questa libreria ( potrebbe essere portato da Maven come dipendenza transitiva )?

Qualcuno può aiutarmi a capire perché qualcuno ha bisogno vaso asm

Grazie in anticipo!

Modifica Si può parlare anche per quali scopi / casi d'uso si potrebbe aver bisogno vaso asm?

È stato utile?

Soluzione

ASM è un framework manipolazione bytecode (vedi questa pagina per una bella introduzione) ed è usato da molte cose dello spettacolo ... manipolazione bytecode: quadri con generazione di proxy e di riflessione (primavera , Hibernate, ecc), beffardo quadri ( EasyMock , jMock, ecc), strumenti di analisi del codice ( PMD , Findbugs , ecc). In realtà, il progetto ASM gestisce un elenco di organizzate per categoria, check it out.

Come già detto da Vincent, se siete a seconda transitivamente sulla ASM, il dependency:tree obiettivo o il dipendenza rapporto (vedere i collegamenti PMD e FindBugs sopra per gli esempi) può aiutare a analizzare la situazione e per sapere da dove la sua venuta da. Ma questo non tener conto delle dipendenze di plugin Maven che si sta utilizzando, solo dipendenze del progetto.

Altri suggerimenti

Maven-2 richiede asm.jar per compilare ed eseguire l'applicazione.

qui per ulteriori informazioni.

EDIT:

  

A causa delle molte possibili usi di analisi del programma, la generazione e trasfor-   tecniche mazione, molti strumenti per analizzare, generare e trasformare i programmi   sono stati implementati, per molte lingue, incluso Java. ASM è una delle   questi strumenti per il linguaggio Java, progettato per tempo di esecuzione - ma anche offline - la generazione di classe e trasformazione. La biblioteca ASM1 è stato quindi progettato per   lavorare sulle classi Java compilate. E 'stato inoltre progettato per essere il più veloce e il più piccolo   possibile. Essere il più velocemente possibile è importante al fine di non rallentare   troppo le applicazioni che utilizzano ASM in fase di esecuzione, per Gene- classe dinamica   zione o trasformazione. Ed essendo il più piccolo possibile è importante per   per essere utilizzato in ambienti di memoria vincolata, e per evitare gonfiore della   dimensioni di piccole applicazioni o librerie che utilizzano ASM.   ASM non è l'unico strumento per la generazione e la trasformazione Java compilato   classi, ma è uno dei più recenti ed efficienti. Può essere scaricato   da http://asm.objectweb.org . I suoi principali vantaggi sono i seguenti:   1) ha un API semplice, ben progettato e modulare che è facile da usare.   2) E 'ben documentato e ha un plugin Eclipse associato.   3) fornisce il supporto per l'ultima versione di Java, Java 6.   4) E 'piccolo, veloce, e molto robusto.   5) La sua grande comunità utente può fornire il supporto per i nuovi utenti.   6) La sua licenza open source permette di utilizzarlo in qualsiasi modo si desidera.

Trovato da questo file pdf . Ho l'impressione che con Java EE 6 è venuto anche uno strumento integrato, ASM per la generazione di classe e trasformazione. Il PDF fornisce dettagli in modo più approfondito su ASM.

Spero che questo aiuti.

Quali altre dipendenze che misura il progetto ha? Ho il sospetto che uno dei vasi che hai deciso si richiedono (per esempio primavera o Hibernate) si richiede asm.jar?

E 'possibile utilizzare il dipendenza plug-in per Maven per vedere quale biblioteca ha asm come una dipendenza.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top