Java 登录Quarkus在开发模式下工作,但不';JVM docker映像中的t输出

Java 登录Quarkus在开发模式下工作,但不';JVM docker映像中的t输出,java,quarkus,Java,Quarkus,在构建Quarkus应用程序时,我遇到了一些问题,包括要扩展的基础应用程序会导致在JVM模式下登录时出现问题。当在Quarkus maven插件提供的开发模式下运行时,我能够在控制台中查看日志并正确使用应用程序。当我使用JVM(或Dockerfile远程运行插件)时,日志不会显示在控制台中 我已经尝试过向配置中添加显式设置以启用日志记录,您可以在下面的分支中看到,我已经确保了包的正确存在,甚至复制了这些包以缩小我编写的基础应用程序的原因,这只影响从Maven外部运行jar的情况 有人知道是什么导

在构建Quarkus应用程序时,我遇到了一些问题,包括要扩展的基础应用程序会导致在JVM模式下登录时出现问题。当在Quarkus maven插件提供的开发模式下运行时,我能够在控制台中查看日志并正确使用应用程序。当我使用JVM(或Dockerfile远程运行插件)时,日志不会显示在控制台中

我已经尝试过向配置中添加显式设置以启用日志记录,您可以在下面的分支中看到,我已经确保了包的正确存在,甚至复制了这些包以缩小我编写的基础应用程序的原因,这只影响从Maven外部运行jar的情况

有人知道是什么导致了这种奇怪的行为吗?我已经把一些案例推到了我复制这个问题的公开应用程序上,并包括了如何复制这个问题的步骤

好例子:

JVM中没有日志的示例:

导致日志记录问题的代码(特别是核心库似乎是问题的子项):

要在控制台中运行以再现案例的命令:

mvn编译quarkus:dev
mvn干净编译包
java-jar-target/git-eca-0.0.1-runner.jar
从POM导入导致问题的Jar/lib


日食
https://repo.eclipse.org/content/repositories/eclipsefdn/
真的
真的
日食基础
夸克斯公地
0.1-1快照
聚甲醛
进口
日食基础
夸克核
0.1-1快照
...

任何帮助都将不胜感激

该问题是由某些类加载冲突引起的。如果您在调试模式下运行jar:

java -agentlib:jdwp=transport=dt_socket,address=8000,server=y,suspend=y -jar target/git-eca-0.0.1-runner.jar
并将远程调试器连接到它,您可以观察java ServiceLoader解析中的问题,当它试图为
META-INF/services/org.jboss.logging.LoggerProvider
查找服务实现时。执行此操作的JarLoader希望在名为
artifactId.jar
/lib
文件夹中找到jar,而quarkus maven构建将它们存储在lib文件夹中,作为
组.artifactId.jar
,因此资源加载失败(没有任何日志,因为记录器甚至无法配置)。 根本原因是您的
quarkus core
有一个可转换的编译作用域dep到
jboss logmanager

通过排除有问题的可传递依赖项,可以轻松测试修复:

<dependency>
    <groupId>org.eclipsefoundation</groupId>
    <artifactId>quarkus-core</artifactId>
    <version>${eclipse-api-version}</version>
    <exclusions>
        <exclusion>
            <groupId>org.jboss.logmanager</groupId>
            <artifactId>jboss-logmanager</artifactId>
        </exclusion>
    </exclusions>
</dependency>

日食基础
夸克核
${eclipse api版本}
org.jboss.logmanager
jboss日志管理器

如果您从
quarkus core
模块的pom中删除该
jboss logmanager
依赖项,那么它将工作。

因此,即使使用未在docker容器中运行的
java-jar target/git-eca-0.0.1-runner.jar,您也看不到日志?不。它只会在返回之前保持片刻,没有日志或日志中的任何其他内容。可能还有一些其他的问题存在,虽然它仍然应该打印一些日志,如果它在maven环境中工作的话,我认为它工作得很好!对于它为什么在quarkus:dev热开发模式下工作仍然感到困惑,但非常感谢!关于如何正确调试的其他信息也很感谢