IntelliJ在从IDE运行应用程序时不包括对类路径的logback-classic依赖(这是kotlin应用程序,但这不应该有关系)。我的gradle构建包含一行:
compile group: 'ch.qos.logback', name: 'logback-classic', version: '1.+'
在Intellij中,依赖项正确地列在“外部库”下。
//This import is provided by logback-classic library
import org.slf4j.impl.StaticLoggerBinder
...
// This compiles successfully, but will trigger ClassNotFoundException when run
val singleton = StaticLoggerBinder.getSingleton()
val cl = ClassLoader.getSystemClassLoader()
val urls = (cl as URLClassLoader).urLs
for (url in urls) {
System.out.println(url.file)
}
...
/Users/knesek/.gradle/caches/modules-2/files-2.1/commons-httpclient/commons-httpclient/3.1/964cd74171f427720480efdec40a7c7f6e58426a/commons-httpclient-3.1.jar
/Users/knesek/.gradle/caches/modules-2/files-2.1/com.fasterxml.jackson.core/jackson-databind/2.8.8/bf88c7b27e95cbadce4e7c316a56c3efffda8026/jackson-databind-2.8.8.jar
/Users/knesek/.gradle/caches/modules-2/files-2.1/com.fasterxml.jackson.module/jackson-module-jaxb-annotations/2.8.8/e2e95efc46d45be4b429b704efbb1d4b89721d3a/jackson-module-jaxb-annotations-2.8.8.jar
/Users/knesek/.gradle/caches/modules-2/files-2.1/com.sun.mail/javax.mail/1.5.6/ab5daef2f881c42c8e280cbe918ec4d7fdfd7efe/javax.mail-1.5.6.jar
/Users/knesek/.gradle/caches/modules-2/files-2.1/ch.qos.logback/logback-core/1.1.11/88b8df40340eed549fb07e2613879bf6b006704d/logback-core-1.1.11.jar
/Users/knesek/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib/1.1.1/98e484e67f913e934559f7f55f0c94be5593f03c/kotlin-stdlib-1.1.1.jar
/Users/knesek/.gradle/caches/modules-2/files-2.1/org.springframework/spring-beans/4.3.9.RELEASE/daa5abf3779c8cad1a2910e1ea08e4272489d8ae/spring-beans-4.3.9.RELEASE.jar
...
有趣的是,logback-core在其中,而logback-classic不在其中(并且logback-core是logback-classic的传递依赖项)。
我试图使InteliJ cahces无效,重建并重新启动InteliJ。从gradle和运行罐子工作很好。有什么建议吗?
这似乎是InteliJ中的一个bug,我将为此提交一份bug报告。包括这个答案和一个解决方案在这里任何人谁可能遇到类似的问题。
似乎当类路径上存在特定的依赖项组合时,那么当您像这样使用gradle依赖项时
compile group: 'ch.qos.logback', name: 'logback-classic', version: '1.+'
当从IDE运行时,它不会被包括在内。但如果你这样包括它:
compile group: 'ch.qos.logback', name: 'logback-classic', version: '1.1.+'
那就管用了。第一个示例确实工作了一段时间,直到我包含了更多的依赖项。
我正在和我的朋友一起做一个智能J项目,我们使用MongoDB 我没有设置这些东西,我从一个存储库中克隆了它。但是我的其他朋友已经让它工作了——都在视窗、OSX和Linux上。只有一个人设置了它。 问题是它不知道什么是莫菲/MongoDB(例如,导入不起作用)。 我做了什么: 重新同步渐变 运行Gradle。生成文件 重新审视项目 使缓存无效并重新启动 它仍然不知道MongoDB是什么。所以我尝试让
在分级文档(第8.3节)中定义了java插件类路径。 在Gradle中,依赖项被分组为配置。配置只是一组命名的依赖项。我们将它们称为依赖项配置。您可以使用它们来声明项目的外部依赖项。正如我们稍后将看到的,它们也用于声明项目的发布。 它是否与我们定义为<code>导出类路径=……
问题内容: 我正在使用log4j创建一个Java应用程序。我给出了配置log4j文件的绝对路径,还给出了生成的日志文件(生成此日志文件的位置)的绝对路径。我可以通过以下方式在运行时获取Java Web应用程序的绝对路径: 但是在普通的Java应用程序中,我们可以使用什么呢? 问题答案: 尝试;
我有个问题。尝试改变版本(就像它在互联网上说的),但没有帮助。我已经读过了,这些答案修正了应用程序的类路径,使它包含一个单一的、兼容的org.springframework.plugin.core.pluginregistry版本,但它也没有帮助。 问题: 更正应用程序的类路径,使其包含Org.SpringFramework.http.Converter.Support.AllEncompassi
版本 openjdk版本“11.0.11”2021-04-20 如果可能的话,请不要告诉我像我以前看到其他人回答的那样“阅读基础知识”。我只是不确定为什么我的代码不能在我的最后一个项目中运行。 提前谢谢你!
尝试运行spring项目时出现以下错误: 我认为这个错误可能是由于某些依赖项的版本冲突造成的,但我不是很确定。这是我的第一个Spring项目。 这是我更新的pom。xml文件 如果您发现任何错误,请随时指出并解释原因。尽可能多地学习。