파이문

gradle "java.lang.NoClassDefFoundError" 본문

트러블 슈팅

gradle "java.lang.NoClassDefFoundError"

민Z 2019. 5. 8. 16:44
728x90

gradle build 는 되는데 run 이 안되었다.

 

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/logging/log4j/LogManager

    at .....<clinit>(.....java:13)

Caused by: java.lang.ClassNotFoundException: org.apache.logging.log4j.LogManager

    at java.net.URLClassLoader.findClass(URLClassLoader.java:381)

    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)

    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)

    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)

    

build.gradle 에서 dependencies 확인하고, compile 버젼 바꾸고 별 행동을 다 했는데 jar 순서 바꾸고 아래 추가 하니까 됨

from configurations.runtime.collect { zipTree(it) }

전체 build.gradle 예

plugins {
    id 'java'
}

group '이름'
version '0.0.0'

sourceCompatibility = 1.8


repositories {
    mavenCentral()
}


dependencies {
    compile  group: 'org.apache.logging.log4j', name: 'log4j-core', version: '2.11.2'
    compile  group: 'org.apache.logging.log4j', name: 'log4j-api', version: '2.11.2'
    compile group: 'junit', name: 'junit', version: '4.12'
}


jar {
    manifest {
        attributes 'Main-Class': '메인클래스'
    }
    from configurations.runtime.collect { zipTree(it) }
}

근데 왜 되는지 몰라서 gradle 철저 어쩌고 책을 샀다.

 

ref

https://docs.gradle.org/current/javadoc/org/gradle/api/Project.html#zipTree-java.lang.Object-

Comments