如何在Maven项目中使用ASM库

时间:2014-10-25 15:33:57

标签: java maven

我正在尝试在maven项目中使用ASM字节代码工程库。我把它放在我的pom中

    <dependency>
        <groupId>asm</groupId>
        <artifactId>asm-parent</artifactId>
        <version>3.3.1</version>
    </dependency>

但我的代码无法构建,因为没有jar存在。当我检查.m2的内容时,我看到了

ll ~/.m2/repository/asm/asm-parent/3.3.1/
total 40
drwxr-xr-x  6 david  staff   204 Oct 25 08:25 .
drwxr-xr-x  5 david  staff   170 Dec 24  2013 ..
-rw-r--r--  1 david  staff   156 Dec 18  2013 _maven.repositories
-rw-r--r--  1 david  staff   242 Oct 25 08:25 asm-parent-3.3.1.jar.lastUpdated
-rw-r--r--  1 david  staff  4332 Dec 18  2013 asm-parent-3.3.1.pom
-rw-r--r--  1 david  staff    40 Dec 18  2013 asm-parent-3.3.1.pom.sha1

而且:

[ERROR] Failed to execute goal on project asm-test: 
Could not resolve dependencies for project com.example:asm-test:jar:1.0-SNAPSHOT: 
Could not find artifact asm:asm-parent:jar:3.3.1 in central 
(http://repo.maven.apache.org/maven2), 
try downloading from http://mojo.codehaus.org/my-project -> [Help 1]

3 个答案:

答案 0 :(得分:3)

asm-parent依赖类型是pom, 尝试以下

        <dependency>
            <groupId>asm</groupId>
            <artifactId>asm-parent</artifactId>
            <version>3.3.1</version>
            <type>pom</type>
        </dependency>

如果您只想使用asm

<dependency>
    <groupId>asm</groupId>
    <artifactId>asm</artifactId>
    <version>3.3.1</version>
</dependency>

答案 1 :(得分:2)

根据http://mvnrepository.com/artifact/asm/asm/3.3.1建议的用法是这样的:

<dependency>
    <groupId>asm</groupId>
    <artifactId>asm</artifactId>
    <version>3.3.1</version>
</dependency>

您尝试使用父项目,只定义了一个pom。

顺便说一下,有一个说明: 注意:此工件已移至:

新组org.ow2.asm 新神器asm

答案 2 :(得分:2)

2016年的更新,如果您想使用完整的ASM库,可以将其添加到您的POM中:

<dependency>
    <groupId>org.ow2.asm</groupId>
    <artifactId>asm-all</artifactId>
    <version>5.1</version>
</dependency>