Банка ASM - Почему мой проект Java имеет зависимость от этого?

Фильтр, преобразовывающий какие-либо даты в различных связанных с ISO форматах (и кто использовал бы что-либо еще после чтения записи из Могущественного Kuhn?) на стандартном входе к seconds-since-the-epoch времени на стандартном выводе мог бы служить для иллюстрирования обеих частей:

martind@whitewater:~$ cat `which isoToEpoch`
#!/usr/bin/perl -w
use strict;
use Time::Piece;
# sudo apt-get install libtime-piece-perl
while (<>) {
  # date --iso=s:
  # 2007-02-15T18:25:42-0800
  # Other matched formats:
  # 2007-02-15 13:50:29 (UTC-0800)
  # 2007-02-15 13:50:29 (UTC-08:00)
  s/(\d{4}-\d{2}-\d{2}([T ])\d{2}:\d{2}:\d{2})(?:\.\d+)? ?(?:\(UTC)?([+\-]\d{2})?:?00\)?/Time::Piece->strptime ($1, "%Y-%m-%d$2%H:%M:%S")->epoch - (defined ($3) ? $3 * 3600 : 0)/eg;
  print;
}
martind@whitewater:~$ 

9
задан Ben Jackson 30 October 2010 в 18:27
поделиться

4 ответа

ASM - это фреймворк для работы с байт-кодом (см. эту страницу для хорошего введения) и используется многими вещами, выполняющими ... манипуляции с байт-кодом: фреймворки, использующие прокси генерация и отражение (Spring, Hibernate и т. д.), фреймворки имитации ( EasyMock , JMock и т. д.), инструменты анализа кода ( PMD , Findbugs и т. д.). Фактически, проект ASM поддерживает список пользователей , упорядоченный по категориям, проверьте его.

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

13
ответ дан 4 December 2019 в 11:42
поделиться

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

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

РЕДАКТИРОВАТЬ:

Срок выполнения ко многим возможным применениям анализа, генерации и преобразования программ методы создания, множество инструментов для анализа, генерации и преобразования программ были реализованы для многих языков, включая Java. ASM является одним из эти инструменты для языка Java, предназначенные для создания и преобразования классов во время выполнения, но также и в автономном режиме. Поэтому библиотека ASM1 была разработана для работать над скомпилированными Java-классами. Он также был разработан, чтобы быть таким же быстрым и таким же маленьким. насколько возможно. Чтобы не сбавлять скорость, важно действовать как можно быстрее. слишком много приложений, использующих ASM во время выполнения, для генерации динамических классов действие или преобразование. И быть как можно меньше важно для того, чтобы для использования в средах с ограниченным объемом памяти и во избежание раздувания размер небольших приложений или библиотек, использующих 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.

Надеюсь, это поможет.

3
ответ дан 4 December 2019 в 11:42
поделиться

Какие еще зависимости есть у вашего проекта? Я подозреваю, что для одного из jar-файлов, которые вы решили, что вам нужны (например, Spring или Hibernate) , требуется asm.jar?

1
ответ дан 4 December 2019 в 11:42
поделиться

Можно использовать плагин зависимостей для Maven, чтобы увидеть, какая библиотека имеет asm в качестве зависимости.

1
ответ дан 4 December 2019 в 11:42
поделиться
Другие вопросы по тегам:

Похожие вопросы: