gpt4 book ai didi

java - IntelliJ找不到带有gradle的slf4j记录器

转载 作者:行者123 更新时间:2023-12-03 17:51:41 26 4
gpt4 key购买 nike

我有一个使用gradle的项目,并且想使用slf4j提供的记录器。

在Android Studio中运行会产生以下错误:

Exception in thread "main" java.lang.NoClassDefFoundError: org/slf4j/LoggerFactory
at com.mypkg.Main.<clinit>(Main.java:9)
Caused by: java.lang.ClassNotFoundException: org.slf4j.LoggerFactory
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


我的build.gradle项目:

task wrapper(type: Wrapper) {
gradleVersion = '3.5'
}

buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.github.jengelman.gradle.plugins:shadow:2.0.0'
}
}

apply plugin: 'com.github.johnrengelman.shadow'
apply plugin: 'java'
apply plugin: 'application'

jar {
manifest {
attributes 'Main-Class': "Main"
}
}

shadowJar {
mergeServiceFiles('META-INF/spring.*')
}


mainClassName = 'com.mypkg.Main'

dependencies {
compile 'com.squareup:otto:1.3.5'
compile 'com.fasterxml.jackson.core:jackson-databind:2.4.4'
compile 'com.squareup.okhttp:okhttp:2.7.4'
compile 'com.squareup.okhttp:okhttp-ws:2.7.4'
compile 'com.parse.bolts:bolts-android:1.2.1'
compile 'org.json:json:20140107'
compile 'org.bouncycastle:bcprov-jdk15on:1.52'
compile 'commons-codec:commons-codec:1.10'
compile 'org.scream3r:jssc:2.8.0'

compile 'ch.qos.logback:logback-classic:1.1.3'
compile 'ch.qos.logback:logback-core:1.1.3'

compile 'org.json:json:20140107'
compile group: 'com.fasterxml.jackson.core', name: 'jackson-databind', version: '2.0.1'

compile group: 'org.springframework.shell', name: 'spring-shell', version: '1.2.0.RELEASE'
compile group: 'org.springframework', name: 'spring-context-support', version: '4.2.4.RELEASE'
compile group: 'org.springframework', name: 'spring-core', version: '4.2.4.RELEASE'
compile group: 'org.slf4j', name: 'slf4j-log4j12', version: '1.7.25'


}

sourceCompatibility = "1.8"
targetCompatibility = "1.8"


如果我使用gradle构建该项目,则影子插件会生成一个胖子jar,可以很好地在控制台上运行它,其中包括logger,但是从IDE中,我很难找到LoggerFactory。我在这里读到我应该将记录器添加到类路径中,但是由于我没有明确包含jar,而不是将其标记为依赖项,因此我不确定如何实现。

请指教。
干杯!

最佳答案

类路径不同步,此处的选项很少


在IntelliJ中刷新项目(旧版本的IntelliJ不适用于gradle集成)
apply plugin: 'idea'添加到build.gradle中,然后运行gradle idea以重新生成项目中的.iml .ipr .iws文件,并从gradle中拾取依赖项。(不理想!see why
下载最新版本的IntelliJ和重做选项1


编辑:感谢@CrazyCoder的提示。

关于java - IntelliJ找不到带有gradle的slf4j记录器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44325205/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com