Java gradle java.lang.NoClassDefFoundError

248
16 мая 2018, 01:50

Использую Java + Gradle(встроенный в intellij idea) ('gradle' = 'sh gradlew')

В редакторе или при выполнении gradle run все работает, но при попытке скомпилировать gradle build и запустить java -jar ./build/libs/LinearServer-1.0-SNAPSHOT.jar я получаю ошибку Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/log4j/Logger при вызове Logger.getLogger(Main.class);

Код файла build.gradle:

plugins {
    id 'java'
    id 'application'
}
group 'ru.screamt5.linear'
version '1.0-SNAPSHOT'
sourceCompatibility = 1.8
mainClassName = 'ru.screamt5.linear.LinearServer.Main'
repositories {
    mavenCentral()
}
dependencies {
    compile group: 'commons-cli', name: 'commons-cli', version: '1.4'
    compile group: 'org.apache.commons', name: 'commons-io', version: '1.3.2'
    compile group: 'com.google.inject', name: 'guice', version: '4.2.0'
    compile group: 'log4j', name: 'log4j', version: '1.2.17'
    testCompile group: 'junit', name: 'junit', version: '4.12'
}

jar {
    manifest {
        attributes(
                'Main-Class': mainClassName,
                'Class-Path': configurations.compile.collect { it.getName() }.join(' ')
        )
    }
}

В чем может быть проблема?

Answer 1

Надо добавить from в jar

jar {
    manifest {
        ...
    }
    from {
        configurations.compile.collect { it.isDirectory() ? it : zipTree(it) }
    }
}
READ ALSO
Как получить два объекта из формы Spring?

Как получить два объекта из формы Spring?

Есть две entity сущности Книги

216
Помогите советом по разработке на Android

Помогите советом по разработке на Android

Хочу создать мобильное приложение для Googel Play на подобие Pinterest но с видео вместо картинокВопрос: какой язык выбрать Java или JavaScript(JS т

195
Какая лучше структура проекта

Какая лучше структура проекта

Для одного проекта хочу создать папку service, и отдельно папку process, в service будут находиться классы сервисов post, get, и все запросы просто перенаправлять...

271
Ошибка Java * What went wrong: Could not determine java version from '10.0.1'

Ошибка Java * What went wrong: Could not determine java version from '10.0.1'

Создаю приложение на react nativeПри сборке приложения просит JAVA

316