2015-08-17 94 views
0

我怀疑这个问题不依赖于库,但提供了一些细节:logback是一个日志库,它由logback.xml文件配置,该文件应位于classpath的根目录下。为什么图书馆看不到资源目录之外的资源?

最近我发现,它被忽略,如果位于外resources目录:

enter image description here

如果我把它改成resources目录,它是由图书馆看到:

enter image description here

这是如何配置的?

IDE是IntelliJ,目录结构是Maven的。

不应该看到不同类路径根中的任何平行位置没有区别?

UPDATE

下在Eclipse中工作正常:

enter image description here

回答

2

src/main/java不是类路径根。 Maven将编译在该目录下找到的任何*.java文件,并将编译后的类放在输出目录中。

低于src/main/java的任何非级文件(例如您的logback.xml)将被忽略。但是,如果放在src/main/resources以下,它也会被复制到输出目录。

当你运行该应用程序时,输出目录将是一个类路径根,并且取决于你放置的地方logback.xml它可用或不可用。

+0

这是如何配置的,以及如何配置照常,即让非java文件能够与java文件一起驻留? – Dims

+0

这是Maven的工作方式。如果你想要一个不同的行为,那么创建一个不使用Maven作为构建工具的IntelliJ项目。 – wero

+0

我一直在使用Maven,并且有一些项目的某些部分仍然有一些资源以及现在停止工作的java文件。我需要知道如何在Maven中配置它。我无法相信在Maven内部是不可能的。 – Dims