Вопрос

У меня есть Java-проект, и внутренне он зависит от asm jar.Странно, но я даже не знаю, почему мой проект каким-то образом зависит от этой библиотеки (может быть введено maven в качестве транзитивной зависимости)?

Кто-нибудь может помочь мне узнать зачем кому-то нужен asm jar?

Заранее спасибо !

Редактировать: Можете ли вы также указать, для каких целей / вариантов использования может понадобиться asm jar?

Это было полезно?

Решение

ASM является фреймворком для манипулирования байт-кодом (см. эта страница для приятного введения) и используется многими исполнителями...манипулирование байт -кодом:фреймворки, использующие генерацию прокси-сервера и отражение (Spring, Hibernate и т.д.), имитирующие фреймворки (Легкий доступ, JMock и т.д.), инструменты анализа кода (PMD ( ПМД ), Найди Жуков, и т.д.).На самом деле, проект ASM поддерживает список Пользователи упорядоченные по категориям, проверьте это.

Как упоминал Винсент, если вы транзитивно зависите от ASM, то dependency:tree цель или отчет о зависимостях (смотрите ссылки PMD и Findbugs выше для примеров) может помочь проанализировать ситуацию и выяснить, откуда она берется.Но это не будет учитывать зависимости плагинов maven, которые вы используете, только зависимости вашего проекта.

Другие советы

Maven-2 требует asm.jar скомпилировать и запустить приложение.

Здесь для получения дополнительной информации.

Редактировать:

Из-за множества возможных использований анализа программ, формирования и трансфор- методы формирования, множество инструментов для анализа, генерации и преобразования программ были реализованы, для многих языках, Java включена.ASM является одним из этих инструментов для языка Java, предназначенных для генерации и преобразования классов во время выполнения, но также и в автономном режиме.Таким образом, библиотека ASM1 была разработана для работы с скомпилированными классами Java.Он также был разработан, чтобы быть как можно более быстрым и маленьким насколько это возможно.Быть как можно быстрее, важно, чтобы не замедлить слишком много приложений, которые используют АСМ во время выполнения для динамического класса поколе- вания и преобразования.И быть как можно меньше важно для того, чтобы использоваться в средах с ограниченным объемом памяти и избегать увеличения размера небольших приложений или библиотек, использующих ASM.ASM - не единственный инструмент для генерации и преобразования скомпилированных Java классов, но он является одним из самых последних и эффективных.Его можно загрузить с http://asm.objectweb.org.Его основными преимуществами являются следующие:1) Он имеет простой, хорошо продуманный и модульный API, который прост в использовании.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