我正忙于为自定义注释处理器编写集成测试。为了做到这一点,我有一组特定的 .java 源文件,我通过 javac 运行以测试我的实现。这些是由我的测试作为资源加载的。这意味着我的源代码树如下所示:
/src
/test [test source root]
/java
MyIntegrationTest.java [actual source code]
/resources
MyIntegrationClassFile.java [should be treated as plain text]
使用 IntelliJ,可以使用编译器设置过滤作为资源复制的文件。所以我删除了 .java 文件的过滤器。
但是,对于要复制的资源,它们需要位于标记的源树中。我还将资源文件夹标记为测试源(是的,这很奇怪)。
这就是问题所在:如果 .java 文件在源代码树中(以便作为资源复制),它们会被自动编译。我不想编译这些文件(它们可能无法编译)。
我尝试将资源添加到编译器排除列表(不将其从项目中排除),但这也会导致资源未被复制。
据我所知,您不能将 .java 文件标记为纯文本,即使此功能已针对其他文件类型进行了记录。
如何将 .java 文件标记为应该复制而不是编译的纯内容?