簡體   English   中英

使用gradle處理asm依賴時出現NoClassDefFoundError

[英]NoClassDefFoundError while handling asm dependency with 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
    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論壇找到了解決方案。 現在,我粘貼B. Muschko的答案。

執行Java命令時,還必須提供您依賴的外部JAR。 Gradle不會神奇地插入Java命令並提供外部庫。 您可以查看的一個不錯的選擇是Application插件,該插件可以通過run任務直接完成您正在尋找的事情。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM