Java 使用gradle处理asm依赖项时出现NoClassDefFoundError

Java 使用gradle处理asm依赖项时出现NoClassDefFoundError,java,gradle,Java,Gradle,当我尝试使用gradle使用asm软件包构建程序时,出现以下错误: Exception in thread "main" java.lang.NoClassDefFoundError: org/objectweb/asm/ClassVisitor at analysis.CCMetric.main(CCMetric.java:5) Caused by: java.lang.ClassNotFoundException:org.objectweb.asm.ClassVisitor

当我尝试使用gradle使用asm软件包构建程序时,出现以下错误:

Exception in thread "main" java.lang.NoClassDefFoundError: org/objectweb/asm/ClassVisitor
    at analysis.CCMetric.main(CCMetric.java:5)
Caused by: java.lang.ClassNotFoundException:org.objectweb.asm.ClassVisitor
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    ... 1 more
我的gradle脚本如下所示:

apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'application'

mainClassName = 'analysis.CCMetric'

repositories {
    maven { url "http://repo.maven.apache.org/maven2" }    
}

sourceCompatibility = 1.8
targetCompatibility = 1.8

dependencies {
    compile 'org.ow2.asm:asm-all:5.0.2'
    compile 'commons-io:commons-io:2.4'
    compile 'org.jgrapht:jgrapht-core:0.9.1'
    compile 'asm:asm:3.3.1'
}

jar {
    manifest {
        attributes 'Main-Class': 'analysis.CCMetric'
    }
    baseName = 'CCMetric'
    version = '1.0.0'
}

task wrapper(type: Wrapper) {
    gradleVersion = '2.9'
}

我使用gradle build来构建项目,并使用java-jar build/libs/CCMetric.jar运行jar文件,然后我得到了上述异常。

我从gradle论坛找到了解决方案。现在我粘贴的答案来自于Muschko,B

您还必须提供所依赖的外部jar 在执行Java命令时。Gradle没有挂接到Java中 神奇地命令并提供外部库。好的 或者,您可以查看应用程序插件,它可以 在运行任务中,您需要的是开箱即用的东西


我从Gradle论坛找到了解决方案。现在我粘贴的答案来自于Muschko,B

您还必须提供所依赖的外部jar 在执行Java命令时。Gradle没有挂接到Java中 神奇地命令并提供外部库。好的 或者,您可以查看应用程序插件,它可以 在运行任务中,您需要的是开箱即用的东西