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