11

私は Java プロジェクトを持っており、内部的には に依存していasm jarます。奇妙なことに、なぜ私のプロジェクトがこのライブラリに依存しているのかさえわかりません (推移的な依存関係として maven によって持ち込まれる可能性があります)。

asm jar が必要な理由を誰かが教えてくれますか?

前もって感謝します !

編集: asm jarが必要になる可能性のある目的/ユースケースについても言及できますか?

4

4 に答える 4

15

ASMはバイトコード操作フレームワークであり (素晴らしい紹介については、このページを参照してください)、さまざまな実行で使用されます... バイトコード操作: プロキシ生成とリフレクション (Spring、Hibernate など) を使用するフレームワーク、フレームワークのモック ( EasyMock、 JMock など) )、コード分析ツール ( PMDFindbugsなど)。実際、ASM プロジェクトは、カテゴリ別に整理されたユーザーのリストを維持しています。チェックしてみてください。

Vincent が述べたように、ASM に推移的に依存している場合、dependency:tree目標または依存関係レポート(例については上記の PMD と Findbugs のリンクを参照) は、状況を分析し、それがどこから来たのかを見つけるのに役立ちます。ただし、これは、使用している maven プラグインの依存関係を考慮せず、プロジェクトの依存関係のみを考慮します。

于 2009-11-25T19:36:54.547 に答える
4

Maven-2 ではasm.jar、アプリケーションをコンパイルして実行する必要があります。

詳しくはこちら

編集:

プログラムの分析、生成、および変換の技法にはさまざまな用途があるため、Java を含む多くの言語について、プログラムを分析、生成、および変換するための多くのツールが実装されています。ASM は Java 言語用のこれらのツールの 1 つで、実行時だけでなくオフラインでもクラスの生成と変換を行うように設計されています。したがって、ASM1 ライブラリは、コンパイルされた Java クラスで動作するように設計されています。また、可能な限り高速かつ小型になるように設計されています。動的なクラスの生成または変換のために、実行時に ASM を使用するアプリケーションの速度が低下しすぎないようにするために、できるだけ高速であることが重要です。また、メモリに制約のある環境で使用するために、また ASM を使用する小さなアプリケーションやライブラリのサイズが肥大化するのを避けるために、できるだけ小さくすることが重要です。ASM は、コンパイル済みの Java クラスを生成および変換するための唯一のツールではありませんが、最新かつ効率的なツールの 1 つです。からダウンロードできます。http://asm.objectweb.org。その主な利点は次のとおりです。1) 使いやすく、よく設計されたシンプルなモジュラー API を備えています。2) 十分に文書化されており、関連する Eclipse プラグインがあります。3) 最新の Java バージョンである Java 6 のサポートを提供します。 4) 小さく、高速で、非常に堅牢です。5) その大規模なユーザー コミュニティは、新しいユーザーにサポートを提供できます。6) オープン ソース ライセンスにより、ほぼすべての方法で使用できます。

このpdfファイルから見つけました。Java EE 6 とともに、クラスの生成と変換のための組み込みツールである ASM も登場したという印象を受けました。PDF には、ASM に関する詳細が記載されています。

お役に立てれば。

于 2009-11-25T17:51:09.747 に答える
2

プロジェクトには他にどのような依存関係がありますか? あなたが必要だと決めたjarの1つ(SpringやHibernateなど)自体が asm.jar を必要としていると思いますか?

于 2009-11-25T17:50:51.843 に答える
2

Maven の依存関係プラグインを使用して、依存関係として asm を持つライブラリを確認できます。

于 2009-11-25T17:53:40.100 に答える