【发布时间】:2022-08-10 08:55:53
【问题描述】:
我正在尝试提供我自己的System.LoggerFinder 实现,据我所知,我必须在某些资源文件/resources/META-INF/services/java.lang.System$LoggerFinder 中指定类。
现在我的实现位于它自己的包中(包括构建文件和java_library() 作为规则),这与我的java_binary() 所在的包和BUILD 文件不同。我将实现作为deps 添加到BUILD 文件中二进制文件并使用//visibility:public 确保包可见,只是为了确保这不是问题。我尝试将上述文件放入它们两个中,并使用resources = [\"resources/META-INF/services/java.lang.System$LoggerFinder\"]将其指定为相应BUILD文件中的资源文件,但bazel总是抱怨要么
- 文件
\'//:resources/META-INF/services/java.lang.System$LoggerFinder\'丢失, - 或者,如果我改用
resources = [\"//resources/META-INF/services/java.lang.System$LoggerFinder\"],则资源目录缺少 BUILD 文件。
所以基本上我的问题是:我必须将资源放在哪里以及如何指定它们?如果我必须将 BUILD 文件添加到资源中,我应该使用什么规则?
谢谢!
标签: java bazel bazel-java