jar ASM - Perché il mio progetto Java ha una dipendenza da questo?
-
22-09-2019 - |
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?
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.