当我尝试使用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文件,然后我得到了如上所述的异常。
答案 0 :(得分:0)
我从Gradle论坛找到了解决方案。现在我将答案来自Muschko,B。
您还必须提供您所依赖的外部JAR 执行Java命令时Gradle没有挂钩到Java 神奇地命令并提供外部库。一个好的 或者您可以查看的是Application插件 你正在寻找与运行任务开箱即用的东西。