سؤال

لدي مشروع Java وداخليًا يعتمد عليه asm jar. الغريب ، أنا لا أعرف حتى لماذا يعتمد مشروعي بطريقة أو بأخرى على هذه المكتبة (قد يتم إحضارها بواسطة Maven باعتبارها تبعية متعدية)?

هل يمكن لأي شخص مساعدتي في معرفة لماذا يحتاج شخص ما إلى جرة ASM?

شكرا لك مقدما !

تعديل:هل يمكنك أيضًا ذكر ما هي أغراض/استخدامات الاستخدام التي قد يحتاج المرء إلى جرة ASM؟

هل كانت مفيدة؟

المحلول

ASM هو إطار معالجة Bytecode (انظر هذه الصفحة للحصول على مقدمة لطيفة) ويستخدمها العديد من الأشياء التي تؤدي ... معالجة BYTECODE: الأطر باستخدام توليد الوكيل والانعكاس (الربيع ، السبات ، إلخ) ، أطر السخرية (easymock, ، Jmock ، إلخ) ، أدوات تحليل التعليمات البرمجية (PMD, FindBugs, ، إلخ). في الواقع ، يحتفظ مشروع ASM بقائمة من المستخدمون نظمت حسب الفئة ، تحقق من ذلك.

كما ذكر Vincent ، إذا كنت تعتمد على عابرة على ASM ، dependency:tree الهدف أو تقرير التبعية (انظر روابط PMD و FindBugs أعلاه للحصول على أمثلة) يمكن أن تساعد في تحليل الموقف ومعرفة من أين يأتي. ولكن هذا لن يأخذ في الاعتبار تبعيات المكونات الإضافية Maven التي تستخدمها ، فقط تبعيات مشروعك.

نصائح أخرى

Maven-2 يتطلب asm.jar لتجميع وتشغيل التطبيق.

هنا للمزيد من المعلومات.

تعديل:

نظرًا للعديد من الاستخدامات المحتملة لتحليل البرنامج ، وتقنيات التوليد والانتقال ، تم تنفيذ العديد من الأدوات لتحليل البرامج وإنشاء وتحويل ، للعديد من اللغات ، بما في ذلك Java. ASM هي واحدة من هذه الأدوات للغة Java ، المصممة لوقت التشغيل - ولكن أيضًا في وضع عدم الاتصال - توليد الطبقة والتحول. لذلك تم تصميم مكتبة ASM1 للعمل على فصول Java المترجمة. تم تصميمه أيضًا ليكون سريعًا وصغيرًا قدر الإمكان. من المهم أن تكون في أسرع وقت ممكن من أجل إبطاء التطبيقات التي تستخدم ASM في وقت التشغيل ، لتوليد فئة ديناميكية أو تحويل. من المهم أن تكون صغيرًا قدر الإمكان من أجل استخدامها في البيئات المقيدة للذاكرة ، وتجنب انتفاخ حجم التطبيقات أو المكتبات الصغيرة باستخدام ASM. ASM ليست الأداة الوحيدة لتوليد وتحويل فصول Java المترجمة ، ولكنها واحدة من الأحدث والكفاءة. يمكن تنزيله من http://asm.objectweb.org. مزاياها الرئيسية هي ما يلي: 1) لديها واجهة برمجة تطبيقات بسيطة ومصممة بشكل جيد ومعيار سهل الاستخدام. 2) تم توثيقه جيدًا ولديه مكون إضافي Eclipse. 3) يوفر الدعم لأحدث إصدار Java ، Java 6. 4) إنه صغير وسريع وقوي للغاية. 5) يمكن لمجتمع المستخدم الكبير تقديم الدعم للمستخدمين الجدد. 6) يتيح لك ترخيصه مفتوح المصدر استخدامه بأي طريقة تريدها تقريبًا.

وجدت من هذه ملف PDF. إنني تحت الانطباع بأنه إلى جانب Java EE 6 ، جاءت أيضًا أداة مدمجة ، ASM لتوليد الفصل والتحول. يمنحك PDF التفاصيل بتعمق أكبر حول ASM.

أتمنى أن يساعدك هذا.

ما هي التبعيات الأخرى التي يمتلكها مشروعك؟ أظن أن إحدى الجرار التي قررت أنك تحتاجها (مثل الربيع أو السبات) بحد ذاتها يتطلب asm.jar؟

من الممكن استخدام البرنامج المساعد التبعية لكي يرى Maven أي مكتبة لديها ASM كاعتماد.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top