You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Bazel构建的Java项目中添加Google Tink库遇包名无效问题求助

解决Bazel项目中添加Google Tink Java库的问题

你遇到的问题是因为直接使用仓库名@com_github_google_tink作为依赖是无效的,Bazel需要指定具体的目标标签。以下是完整的解决方案:

步骤1:配置WORKSPACE文件

在项目根目录的WORKSPACE文件中添加以下内容,引入Tink仓库及其依赖(示例使用v1.12.0版本,可根据需求替换为对应版本):

http_archive(
    name = "com_github_google_tink",
    url = "https://github.com/google/tink/archive/refs/tags/v1.12.0.tar.gz",
    sha256 = "f9c158024f0ad530642900d19c3e0e9555f0d1a7a837a7f1c8b531e04a729d6d",
    strip_prefix = "tink-1.12.0",
)

# 引入Tink依赖的Java规则
http_archive(
    name = "rules_java",
    url = "https://github.com/bazelbuild/rules_java/releases/download/7.6.0/rules_java-7.6.0.tar.gz",
    sha256 = "5a78a7ae82cd1a33cef56dc578c7d2aed85c134065f4d430b340f675e60c37a9",
)

load("@rules_java//java:repositories.bzl", "rules_java_dependencies", "rules_java_toolchains")
rules_java_dependencies()
rules_java_toolchains()

步骤2:修改BUILD文件的依赖配置

将你的java_library规则中的依赖替换为具体的Tink Java目标,比如核心库:

java_library(
    name = "testlib",
    srcs = glob(["*.java"]),
    deps = [
        "@com_github_google_tink//tink-java:tink",
        # 若仅需核心功能,可替换为:@com_github_google_tink//tink-java/core:tink-core
        # 其他模块如AEAD加密可写:@com_github_google_tink//tink-java/aead:tink-aead
    ],
    visibility = ["//visibility:public"],
)

关键说明

  • Bazel依赖必须指向仓库内具体的构建目标,而非整个仓库本身,所以不能直接用@com_github_google_tink。
  • 可根据项目需求选择对应Tink模块,所有Java模块都在tink-java目录下,目标命名规则为tink-<模块名>。

内容的提问来源于stack exchange,提问作者Udit Gupta

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 18:48:40