无法在使用 java 11 的 spring 引导中加载日志记录资源文件

Cannot load logging resource file in spring boot with java 11

我在将我的应用程序迁移到 java11 时遇到问题。 我在尝试加载我的日志配置时收到 FileNotFoundException

java.io.FileNotFoundException: class path resource [logging/logback-local.xml] cannot be resolved to URL because it does not exist
    at spring.core@5.2.1.RELEASE/org.springframework.util.ResourceUtils.getURL(ResourceUtils.java:137)
    at spring.boot@2.1.10.RELEASE/org.springframework.boot.context.logging.LoggingApplicationListener.initializeSystem(LoggingApplicationListener.java:293)
    at spring.boot@2.1.10.RELEASE/org.springframework.boot.context.logging.LoggingApplicationListener.initialize(LoggingApplicationListener.java:264)
    at spring.boot@2.1.10.RELEASE/org.springframework.boot.context.logging.LoggingApplicationListener.onApplicationEnvironmentPreparedEvent(LoggingApplicationListener.java:226)
    at spring.boot@2.1.10.RELEASE/org.springframework.boot.context.logging.LoggingApplicationListener.onApplicationEvent(LoggingApplicationListener.java:203)
    at spring.context@5.2.1.RELEASE/org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener(SimpleApplicationEventMulticaster.java:172)
    at spring.context@5.2.1.RELEASE/org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:165)
    at spring.context@5.2.1.RELEASE/org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:139)
    at spring.context@5.2.1.RELEASE/org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:127)
    at spring.boot@2.1.10.RELEASE/org.springframework.boot.context.event.EventPublishingRunListener.environmentPrepared(EventPublishingRunListener.java:76)
    at spring.boot@2.1.10.RELEASE/org.springframework.boot.SpringApplicationRunListeners.environmentPrepared(SpringApplicationRunListeners.java:53)
    at spring.boot@2.1.10.RELEASE/org.springframework.boot.SpringApplication.prepareEnvironment(SpringApplication.java:342)
    at spring.boot@2.1.10.RELEASE/org.springframework.boot.SpringApplication.run(SpringApplication.java:305)
    at spring.boot@2.1.10.RELEASE/org.springframework.boot.SpringApplication.run(SpringApplication.java:1215)
    at spring.boot@2.1.10.RELEASE/org.springframework.boot.SpringApplication.run(SpringApplication.java:1204)
    at FooApplicationModule@0.0.1-SNAPSHOT/foo.bar.Application.main(Application.java:23)

这是通过配置完成的,并在 Java 8:

中工作

这是我的application.yml

logging:
  config: classpath:logging/logback-local.xml

应用程序结构如下所示:

src
  -main
    -java
      -foo.bar.Application.java
    -resources
      -application.yml
      -logging
        -logback-local.xml
pom.xml

pom:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.1.10.RELEASE</version>
    <relativePath/> <!-- lookup parent from repository -->
  </parent>
  <groupId>foo.group</groupId>
  <artifactId>application</artifactId>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>

    <java.version>11</java.version>
    <spring.version>5.2.1.RELEASE</spring.version>
    <spring.boot.version>2.1.10.RELEASE</spring.boot.version>
  </properties>

  <dependencies>
    ...
  </dependencies>

  <build>
    <finalName>${project.artifactId}</finalName>
    <sourceDirectory>${project.basedir}/src/main/java</sourceDirectory>
    <resources>
      <resource>
       <directory>${project.basedir}/src/main/resources</directory>
      </resource>
    </resources>
    <testSourceDirectory>${project.basedir}/src/test/java</testSourceDirectory>
    <plugins>
      <plugin>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-maven-plugin</artifactId>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.8.1</version>
        <configuration>
          <source>${java.version}</source>
          <target>${java.version}</target>
          <annotationProcessorPaths>
            <path>
              <groupId>org.mapstruct</groupId>
              <artifactId>mapstruct-processor</artifactId>
              <version>${mapstruct.version}</version>
            </path>
          </annotationProcessorPaths>
        </configuration>
      </plugin>
    </plugins>
  </build>

</project>

我认为这是拼图模块化系统的问题,但我在 Internet 上找不到任何解决方案。

感谢您的帮助!

所以经过一些摆弄,使用 Hatice 的建议,问题就消失了。我不知道是什么导致了这个问题。