3

我在 IntelliJ IDEA 中有一个 groovy 项目,它使用logback.groovy. 它src/main/resources存在于项目的类路径中,但 IDEA 将其编译为logback.class. Logback 期望这是.groovy格式,所以这不会。有没有办法防止这种行为?我只想logback.groovy在我的类路径中运行单元测试和 webapp 调试。

4

4 回答 4

3

IDEA 13 现在支持您的内容根目录下的新型目录分配:与此问题相关的是“资源”。在以前的版本中,IDEA 仅支持将目录标记为“源”或“测试”。

所以新的正确答案是将src/main/resources目录标记为内容根目录的资源文件夹。通过将目录的内容标记为“资源”,您是在告诉 IDEA 内容不是源代码,但需要在运行时在类路径上访问。

[添加为单独的答案,因为如果您的文件因任何原因卡在源代码树下,第一个仍然可能有用 - 如果更合适,请随时将其合并到另一个答案中。]

于 2013-11-20T00:20:39.920 回答
2

我猜 /src/main/resources 在 IDEA 中被标记为源根?这非常明确地告诉 IDEA“这个目录下的东西是源文件”。

您可以尝试将文件添加到 /Settings/Project Settings/Compiler/Excludes - 但这可能意味着您的文件不会被复制到您的输出路径(因此不会在运行时类路径上,因此 logback 不会看见)。

我个人的解决方案是我的 logback.groovy 位于我的 /src 树之外 - 我认为它是配置而不是源/资源文件。然后我的配置目录本身通过 /Project Structure/Modules//Dependencies (标记为运行时范围)直接添加到运行时类路径中。

于 2013-07-11T11:03:53.393 回答
0

我的解决方案是修改工件以明确包含logback.groovyWEB-INF/classes目录中。这并不理想,因为这个文件只能被绝对路径引用,而不是作为项目文件,所以仍然欢迎任何建议。

于 2013-09-12T12:46:15.733 回答
0

我将 logback.groovy 放在 src/main/resources 中,并将其添加到 IDEA 的编译器设置中的资源模式中(ctrl + alt + s;编译器 > 资源模式)。它有效:)

于 2014-01-16T10:28:11.927 回答