【问题标题】:IntelliJ IDEA won't find log4j2.xml after maven buildIntelliJ IDEA 在 maven 构建后找不到 log4j2.xml
【发布时间】:2017-09-18 09:53:23
【问题描述】:

我有一个带有 log4j2 (2.9.0) 的 maven 项目和一个位于 /src/main/java/resources/log4j2.xml 的配置文件。只要我留在 IntelliJ 中,它就可以正常工作,并且它会像我配置它一样记录。

如果我现在在终端(Ubuntu 14)中创建一个mvn clean install,然后在 IntelliJ 中启动我的程序的 main 方法,我会得到一个错误,它找不到 log4j2 配置文件:

ERROR StatusLogger 找不到 log4j2 配置文件。使用默认值 配置:仅将错误记录到控制台。设置系统属性 'log4j2.debug' 显示 Log4j2 内部初始化日志。

只要我在 IntelliJ IDEA 中创建 Build -> Rebuild Project,它就会再次工作。

我真的不明白外部 maven 构建如何使 IntelliJ IDEA 不接受本地源代码中的 .xml。

有什么想法吗?

【问题讨论】:

标签: intellij-idea maven-3 log4j2


【解决方案1】:

我找到了解决办法。

IntelliJ 默认将资源复制到 /target/classes ,这就是 IntelliJ 实际上从中获取 log4j2.xml 的地方。我的 maven 构建没有这样做,IntelliJ 没有重建项目,所以它找不到 log4j2.xml

我的解决方案是将 log4j2.xml 放在 pom 的资源部分:

    <resources>
        <resource>
            <directory>src/main/resources</directory>
            <targetPath>${project.build.directory}/classes</targetPath>
            <includes>
                <include>**/log4j2.xml</include>
            </includes>
        </resource>
    </resources>

【讨论】:

  • 在这种情况下也需要覆盖默认资源,否则这种过早覆盖资源可能是任何其他依赖资源错误的根本原因!
  • 最好关闭 IntelliJ Idea 然后删除元数据目录.idea 和文件*.iml。之后重新打开 IntelliJ Idea。它解决了同样的问题!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-06-06
  • 2016-06-19
  • 2020-05-18
  • 2021-04-17
  • 2016-07-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多