Bazel构建Java项目时找不到com_googlecode_json-simple依赖问题咨询
报错原因
- 未在Bazel的Maven依赖配置(WORKSPACE/MODULE.bazel)中声明
com.googlecode.json-simple:json-simple:1.1.1依赖,导致@maven外部仓库未生成对应目标。 - 依赖目标名不符合rules_jvm_external的命名规则:默认会将groupId、artifactId中的点、横杠替换为下划线,再用下划线连接groupId和artifactId,你当前使用的
@maven//:com_googlecode_json-simple不符合规则。
解决步骤
- 第一步:声明Maven依赖
- 若使用WORKSPACE模式,找到
maven_install配置块,在artifacts列表中添加依赖:maven_install( name = "maven", artifacts = [ # 原有依赖保留 "com.googlecode.json-simple:json-simple:1.1.1", ], repositories = [ "https://repo1.maven.org/maven2", # 其他原有仓库保留 ], ) - 若使用Bzlmod模式,在MODULE.bazel中添加对应依赖声明:
maven.artifact( group = "com.googlecode.json-simple", artifact = "json-simple", version = "1.1.1", )
- 若使用WORKSPACE模式,找到
- 第二步:修改BUILD.bazel中的deps配置,替换为正确的目标名:
deps = [ "@maven//:com_googlecode_json_simple_json_simple", ] - 第三步:执行
bazel clean --expunge清除旧缓存后,重新运行bazel run //examples:Test即可。
可选验证:你可以执行bazel query @maven//:all查看所有已生成的Maven依赖目标,确认json-simple对应的目标名是否正确。
内容的提问来源于stack exchange,提问作者seriouslyg0e
相关产品推荐
相关产品推荐

