This is a non-Spring app. It's a simple java app with a main. I'm using Lombok @Slf4j with a log4j2.xml config file. Gradle build file contains the following content:
dependencies {
...
implementation 'org.slf4j:slf4j-api:2.0.7'
implementation 'org.apache.logging.log4j:log4j-slf4j2-impl:2.20.0'
...
}
configurations {
testImplementation.extendsFrom compileOnly
// excludes transitive dependencies
implementation.transitive = false
}
jar {
dependsOn check
duplicatesStrategy = DuplicatesStrategy.FAIL
configurations.implementation.setCanBeResolved(true)
into('META-INF/lib') {
from (configurations.implementation)
}
manifest {
attributes("Spring-Context": "*;publish-context:=false")
attributes(
'Class-Path': configurations.runtimeClasspath.files.collect { it.getName() }.join(' '),
'Main-Class': 'com.example.Application'
)
}
}
Logging works fine when run within IntelliJ. Running as an executable jar file:
Exception in thread "main" java.lang.NoClassDefFoundError: org/slf4j/LoggerFactory
at dia.nmec.twm.s3_client_plugin.S3ClientPlugin.<clinit>(S3ClientPlugin.java:10)
Caused by: java.lang.ClassNotFoundException: org.slf4j.LoggerFactory
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:581)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
... 1 more
Suggestions?
TIA, Eric