我正在尝试在jenkins上准备一个基本管道,尽管本地构建可以完成相同的任务,但在jenkins上使用它失败了
java.lang.NoClassDefFoundError: org/slf4j/LoggerFactory
at org.gradle.internal.concurrent.CompositeStoppable.<clinit>(CompositeStoppable.java:37)
at org.gradle.internal.classloader.ClassLoaderUtils.tryClose(ClassLoaderUtils.java:51)
at org.gradle.launcher.bootstrap.ProcessBootstrap.runNoExit(ProcessBootstrap.java:64)
at org.gradle.launcher.bootstrap.ProcessBootstrap.run(ProcessBootstrap.java:37)
at org.gradle.launcher.GradleMain.main(GradleMain.java:23)
at sun.reflect.NativeMethodaccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodaccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodaccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.gradle.wrapper.BootstrapMainStarter.start(BootstrapMainStarter.java:31)
at org.gradle.wrapper.WrapperExecutor.execute(WrapperExecutor.java:108)
at org.gradle.wrapper.GradleWrapperMain.main(GradleWrapperMain.java:62)
Caused by: java.lang.ClassnotFoundException: org.slf4j.LoggerFactory
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 12 more
构建文件具有以下依赖项配置:
configurations {
all*.exclude group: 'com.google.guava',module:'guava-jdk5'
all*.exclude group: 'ch.qos.logback',module: 'logback-core'
all*.exclude group: 'ch.qos.logback',module: 'logback-classic'
all*.exclude module: 'slf4j-log4j12'
all*.exclude group: 'org.springframework.boot',module: 'spring-boot-starter-logging'
}
dependencies {
compile group: 'org.apache.commons',name: 'commons-collections4',version: '4.0'
compile group: 'org.slf4j',name:'slf4j-api',version: '1.7.29'
compile group: 'org.slf4j',name:'slf4j-log4j12',version:'1.5.6'
compile group: 'org.apache.logging.log4j',name: 'log4j-api',version: '2.10.0'
compile group: 'org.apache.logging.log4j',name: 'log4j-core',name: 'log4j-slf4j-impl',version: '2.10.0'
compile "com.google.guava:guava:23.0"
compile 'io.reactivex.rxjava2:rxjava:2.2.7'
compile group: 'org.springframework',name: 'spring-context',version: '5.0.4.RELEASE'
compile group: 'org.springframework',name: 'spring-web',version: '5.0.4.RELEASE'
compile group: 'org.springframework.security',name: 'spring-security-core',version: '5.0.4.RELEASE'
compile group: 'org.springframework.boot',name: 'spring-boot-autoconfigure',version: '2.0.0.RELEASE'
compile group: 'org.codehaus.groovy',name: 'groovy-all',version: '2.4.4'
testCompile group: 'org.spockframework',name: 'spock-core',version: '1.1-groovy-2.4'
testCompile group: 'org.spockframework',name: 'spock-spring',version: '1.1-groovy-2.4'
testCompile group: 'org.springframework.boot',name: 'spring-boot-starter-test',version: '2.0.0.RELEASE'
testCompile "cglib:cglib:2.2"
testCompile group: 'junit',name: 'junit',version: '4.12'
}
詹金斯文件
pipeline {
agent any
stages {
stage("Build") {
steps {
bat 'project/gradlew.bat -Djava.home=C:\\Program Files\\Java\\jdk1.8.0_172 -b project/build.gradle test'
}
}
}
}
我试图更新库的版本并启用/禁用排除部分,但是该错误仍然发生在詹金斯身上,而在本地没有异常。谁能指出原因和解决方案?