我在IntelliJ IDEA中有一个使用logback.groovy
的groovy项目。它在src/main/resources
中,因此最终在项目的类路径中,但IDEA将其编译为logback.class
。 Logback期望它采用.groovy
格式,因此不会这样做。有没有办法防止这种行为?我只想在我的类路径中使用logback.groovy
来运行单元测试和webapp调试。
答案 0 :(得分:3)
IDEA 13现在支持您的内容根目录下的新类型的目录分配:此问题的相关内容是“资源”。 在以前的版本中,IDEA仅支持将目录标记为“源”或“测试”。
所以新的正确答案是将 src / main / resources 目录标记为内容根目录的资源文件夹。通过将目录的内容标记为“资源”,您告诉IDEA内容不是源代码,但需要在运行时在类路径上访问。
[作为一个单独的答案添加,因为如果您的文件由于某种原因卡在源树下,第一个仍然可能有用 - 如果更合适,可以随意将其合并到另一个答案。]
答案 1 :(得分:2)
我猜/ / src / main / resources在IDEA中标记为源根?这几乎是明确告诉IDEA“这个目录下的东西是源文件”。
你可以尝试将文件添加到/ Settings / Project Settings / Compiler / Excludes - 但这可能意味着你的文件不会被复制到你的输出路径上(因此不会在运行时类路径上,所以logback不会看到它。)
我的个人解决方案是我的logback.groovy位于我的/ src树之外 - 我认为它是配置而不是源/资源文件。然后我的config目录本身直接通过/ Project Structure / Modules // Dependencies(标记为运行时范围)添加到运行时类路径中。
答案 2 :(得分:0)
我的解决方案是修改工件以在logback.groovy
目录中明确包含WEB-INF/classes
。这是不理想的,因为这个文件只能通过绝对路径引用而不是作为项目文件引用,所以仍然欢迎任何建议。
答案 3 :(得分:0)
我将logback.groovy放在src / main / resources中,并将其添加到IDEA编译器设置中的Resources模式(ctrl + alt + s;编译器>资源模式)。它有效:)