11
votes

ASM JAR - Pourquoi mon projet Java a-t-il une dépendance à ce sujet?

J'ai un projet Java et en interne, cela dépend de ASM JAR . Étrangement, je ne sais même pas pourquoi mon projet dépend d'une manière ou d'une autre dépend de cette bibliothèque ( pourrait être amené par Maven comme une dépendance transitive )?

Quelqu'un peut-il m'aider à savoir pourquoi quelqu'un a besoin d'ASM Jar ?

Merci d'avance!

edit: Pouvez-vous également mentionner pour quelles utiles / utilisations-cas pourrait avoir besoin d'ASM JAR?


2 commentaires

C'est ASM: ASM.OW2.org - Peut être utilisé pour installer des fichiers de classe pour la qualité de code de mesure


Andreas, si j'ai raison, disons-nous que ASM nous aide à faire une certaine manipulation dans le bytecode du bytecode déjà chargé dans JVM?


4 Réponses :


2
votes

Quelles autres dépendances Votre projet a-t-il? Je soupçonne l'un des pots que vous avez décidé avoir besoin d'avoir besoin (par exemple printemps ou hibernate) lui-même nécessite asm.jar?


2 commentaires

Brian, j'utilise beaucoup de printemps dans mon projet .. Mais pourquoi le printemps a-t-il besoin d'ASM? Juste curieux...


Je ne sais pas, j'avoue. Il peut effectuer une injection de bytecode pour des aspects, mais je voudrais vérifier cela.



4
votes

Maven-2 nécessite asm.jar pour compiler et exécuter l'application.

ici pour plus d'informations.

EDIT:

En raison des nombreux usages possibles de l'analyse de programme, de la génération et du transfert Techniques de mation, de nombreux outils pour analyser, générer et transformer des programmes ont été mis en œuvre, pour de nombreuses langues, Java inclus. ASM est l'un des Ces outils pour la langue Java, conçus pour l'exécution - mais aussi hors ligne - génération et transformation de la classe. La bibliothèque ASM1 a donc été conçue pour Travailler sur des classes Java compilées. Il a également été conçu pour être aussi rapide et petit aussi possible. Être aussi rapide que possible est important pour ne pas ralentir Trop d'applications qui utilisent ASM au moment de l'exécution, pour une classe dynamique ation ou transformation. Et être aussi petit que possible est important dans l'ordre à utiliser dans des environnements contraints de la mémoire et pour éviter de bloquer le Taille des petites applications ou des bibliothèques utilisant ASM. L'ASM n'est pas le seul outil de génération et de transformation de Java compilé classes, mais c'est l'une des plus récentes et les plus efficaces. Il peut être téléchargé de http://asm.Objectweb.org . Ses principaux avantages sont les suivants: 1) Il a une API simple, bien conçue et modulaire facile à utiliser. 2) Il est bien documenté et dispose d'un plugin Eclipse associé. 3) Il fournit un soutien à la dernière version Java, Java 6. 4) Il est petit, rapide et très robuste. 5) Sa communauté d'utilisateurs importante peut fournir un soutien aux nouveaux utilisateurs. 6) Sa licence open source vous permet de l'utiliser de presque toutes les manières de votre choix.

trouvé de Ce fichier PDF. Je suis sous l'impression que Java EE 6 est également venue un outil intégré, ASM pour la génération de classe et la transformation. Le PDF vous donne des détails plus en détail à propos de l'ASM.

J'espère que cela aide.


4 commentaires

@Aforloney, c'est la dépendance du plug-in Maven-PMD .. Je n'utilise pas la PMD..qui nous avons besoin d'ASM alors?


J'ai trouvé un fichier PDF en ligne, je l'ai ajouté à mon message avec un blurb, j'espère que cela aide.


Ahh .. selon @andreas_d ASM peut être utilisé pour instruminer les fichiers de classe. @aforloney, peut-être que c'est pourquoi le plugin PMD de Maven a besoin .. wat dire?


Cela pourrait certainement être le cas, je suis très inconnu avec Maven, donc je ne sais pas avec certitude




15
votes

ASM est un cadre de manipulation byTecode (voir Cette page pour une belle introduction) et est utilisée par beaucoup de choses qui se produisent ... MANIPULATION BYTECODE: CADRESTS Utilisation de la génération de proxy et de la réflexion (printemps , Hibernate, etc.), cadres moqueurs ( EasyMock , JMOCK, etc.), outils d'analyse de code ( PMD , Findbugs , etc.). En réalité, le projet ASM gère une liste de Utilisateurs organisés par catégorie, vérifiez-le.

Comme mentionné par Vincent, si vous dépendez de manière transitoire sur ASM, le Dépendance: arborescence but ou Rapport de dépendance (voir les liens PMD et FindBugs ci-dessus pour des exemples) peut aider à analyser la situation et à découvrir d'où sa provenance. Mais cela ne prendra pas en compte les dépendances des plugins Maven que vous utilisez, seules des dépendances de votre projet.


0 commentaires