如何解决“包org.slf4j在模块slf4j.api中声明但模块[ModuleName]无法读取它”?

时间:2019-05-26 22:35:27

标签: java logging logback slf4j

我正在尝试使用slf4j和logback将日志添加到我的多模块项目中。 该项目包含三个pom.xml文件,一个在模型模块中,一个在视图模块中,以及一个主pom.xml文件。 我向每个文件添加了以下依赖项:

             <dependency>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-api</artifactId>
                <version>1.7.5</version>
            </dependency>

            <dependency>
                <groupId>ch.qos.logback</groupId>
                <artifactId>logback-core</artifactId>
                <version>1.0.13</version>
            </dependency>

            <dependency>
                <groupId>ch.qos.logback</groupId>
                <artifactId>logback-classic</artifactId>
                <version>1.0.13</version>
            </dependency>

接下来,我将logback.xml文件放置在resources文件夹(仅在view模块中可用)中,并按以下方式进行配置:

<?xml version="1.0" encoding="UTF-8" ?>
<configuration debug="true">
    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>%d{HH:mm:ss.SSS} {%thread} %-5level %logger{36} - %msg %n</pattern>
        </encoder>
    </appender>

    <appender name="FILE"
              class="ch.qos.logback.core.rolling.RollingFileAppender">
        <encoder>
            <pattern>${FILE_LOG_PATTERN}</pattern>
        </encoder>
        <file>${LOG_FILE}</file>
        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <cleanHistoryOnStart>${LOG_FILE_CLEAN_HISTORY_ON_START:-false}</cleanHistoryOnStart>
            <fileNamePattern>${LOG_FILE}.%d{yyyy-MM-dd}.%i.gz</fileNamePattern>
            <maxFileSize>${LOG_FILE_MAX_SIZE:-10MB}</maxFileSize>
            <maxHistory>${LOG_FILE_MAX_HISTORY:-7}</maxHistory>
            <totalSizeCap>${LOG_FILE_TOTAL_SIZE_CAP:-0}</totalSizeCap>
        </rollingPolicy>
    </appender>

    <logger name="pl.compprog.gui" level="debug"/>
    <root level="INFO">
        <appender-ref ref="STDOUT"/>
    </root>
</configuration>

一切似乎都很好,但是当我尝试import org.slf4j.Logger;时,我得到了“软件包org.slf4j在模块slf4j.api中声明,但模块View无法读取它”。该如何解决?

我尝试从Maven级别安装项目,但是尽管成功结束,但它没有任何改变。

0 个答案:

没有答案