【发布时间】:2013-08-08 18:34:32
【问题描述】:
我有一个注释处理器,它将使用接口的 getter 方法定义的键生成一个枚举。
接口驻留在
MyProject/src/main/java/my.package.MyInterfaces.java.
我想验证驻留在MyProject/src/main/resources/META-INF/resource-bundle/ 中的属性文件是否包含在生成的枚举中定义的键。
我的问题是无法通过处理器的类加载器或 Filer.getResource(...) 获得属性文件。
如何使该项目的源或类路径可供处理器使用,以便加载属性文件?
现在我只有处理器所在的 jar 中的资源可用。 我确实尝试通过 eclipse Project/Properties/Java compiler/Annotation processing/Processor options 定义 -classpath 和/或 -sourcepath 但没有成功。
有没有人遇到过这样的问题,谁能告诉我如何让处理器可以使用这些资源?
我确实有 maven 结构但不使用 maven,因为应用程序中的旧依赖项。所以 maven 现在不是我的选择。
Eclipse 3.6 Helios 似乎
StandardLocation.SOURCE_PATH和StandardLocation.CLASS_PATH没有在 Filer#getResource() 中实现,因此将生成的源文件或类文件写入SOURCE_PATH或CLASS_PATH似乎是不可能的,也可以访问SOURCE_PATH和@987654328 上的任何文件@*
谢谢。
【问题讨论】:
-
是的,好像没有实现。任何人都有解决方法?
-
这道题大家都解决了吗?我也有类似的问题:stackoverflow.com/questions/29658252/…
-
比源位置更重要的是输出文件夹中的位置。您是否检查过该文件是否也在输出/META-INF/resource-bundle 中?你如何建造?你的输出文件夹是什么,你在加载包时指定了哪个路径?
-
为什么不
MyProject/src/main/java/my/package/MyInterfaces.java.?
标签: java eclipse annotation-processing