如何确定Maven目标对应的Bazel依赖引用名称?
确定Bazel中Maven依赖的正确目标名称
你之前猜的依赖名称@maven//:com_github_jknack_handlebars_java其实符合默认命名规则,但可以通过以下方法精准验证或查找:
用bazel query命令直接验证:
在项目根目录运行:bazel query "@maven//:com_github_jknack_handlebars_java"如果命令返回对应的目标信息,说明这个名称是正确的。如果要模糊搜索相关目标,可以用:
bazel query "@maven//:com.github.jknack*"列出所有导入的Maven依赖目标:
如果你用的是rules_jvm_external(当前Bazel主流的Maven依赖管理规则),可以运行以下命令直接查看所有已导入的Maven依赖对应的Bazel目标:bazel run @maven//:list | grep handlebars这个命令会过滤出和Handlebars相关的条目,直接给出正确的目标名称。
另外补充下默认命名规则:Maven坐标的groupId和artifactId会把所有的.、:替换为_,比如com.github.jknack:handlebars.java就会转换为com_github_jknack_handlebars_java,这也是你之前猜测的依据,大多数情况下这个规则都适用,但用命令验证能避免特殊情况的出错。
内容的提问来源于stack exchange,提问作者gph
相关产品推荐
相关产品推荐

