【发布时间】:2017-09-10 08:49:38
【问题描述】:
我有一个 Java 8 项目,我的配置文件位于资源文件夹中,一切正常。现在我切换到Java 9,添加了log4j.api 的要求,并且找不到配置文件了。
我是否需要在我的 module-info 文件中添加其他内容以便记录器找到它的配置?
现在是这样的
module project.main {
requires jdk.incubator.httpclient;
requires jackson.databind;
requires jackson.core;
requires jackson.annotations;
requires log4j.api;
}
项目结构如下:
build.gradle 文件如下:
【问题讨论】:
-
您当前的目录结构是什么?您在 java 8 中映射资源的方式是什么?
-
@nullpointer - src/main/java - src/main/resources - src/main/java/package1 - src/main/java/package2 - src/main/java/module-info.java - src/main/resources/log4j2.xml 但是我不确定第二个问题,我自己并没有真正做任何映射,只是添加了依赖并创建了配置文件,就是这样。
-
您能否在问题本身中更新项目结构的屏幕截图/层次结构?另外,你是如何导入 log4j 模块的?请提及使用的 jar/artifact 的版本。
-
如果 log4j2.xml (sp?) 在 JDK 8 中找到,那么它也应该在 JDK 9 中找到。模块顶层目录中的资源不被封装。如果配置文件位于不同的位置,比如 foo/resources/log4j.xml,那么它将被封装,并且模块需要
opens foo.resources以允许扫描类路径的库(如 log4j)找到它。跨度> -
@nullpointer 我认为该评论会保存我的格式,添加图像。使用 gradle 导入 log4j,版本为 2.9.0
标签: java log4j2 java-9 module-info