【发布时间】:2017-09-21 11:19:49
【问题描述】:
我正在尝试在具有 deps 和传递依赖项的项目之一上使用 generate_workspace。生成generate_workspace.bzl 后,我将其复制到 WORKSPACE 并按照 bazel 文档中的说明进行操作。虽然我看到 generate_workspace.bzl 中列出的 deps 及其传递 deps,但我的项目在 java_library 阶段无法解析传递 deps。当我在 IDEA 中导入同一个项目时,我没有看到正确加载的 jar。
我的疑问是我看到 generate_workspace.bzl 将其传递的部门添加为 runtime_deps 这意味着它们仅在 runtenter code hereime 期间可用
我在这里创建了所有文件的要点 https://gist.github.com/kameshsampath/8a4bdc8b22d85bbe3f243fa1b816e464
理想情况下,在我的 maven 项目中,我只需要 https://gist.github.com/kameshsampath/8a4bdc8b22d85bbe3f243fa1b816e464#file-src_main_build-L8-L9,尽管 generate_workspace.bzl 已正确解决,但我认为如果我的 src/main/BUILD 看起来像这样就足够了
java_binary(
name = "main",
srcs = glob(["java/**/*.java"]),
resources = glob(["resources/**"]),
main_class = "com.redhat.developers.DemoApplication",
# FIXME why I should import all the jars when they are transitive to spring boot starter
deps = [
"//third_party:org_springframework_boot_spring_boot_starter_actuator",
"//third_party:org_springframework_boot_spring_boot_starter_web",
],
)
但遗憾的是,由于传递的 deps 没有作为上述声明的一部分加载,因此会产生很多编译错误。最终我必须像我在https://gist.github.com/kameshsampath/8a4bdc8b22d85bbe3f243fa1b816e464#file-src_main_build中所做的那样定义
src_main_build 是 src/main/BUILD 包下的 BUILD 文件 third_party_BUILD 是包third_party/BUILD下的BUILD
【问题讨论】:
-
我认为 sn-p 在这里会有很长的路要走。另外,您是否看到“出口”的任何用法?
-
@Ittai 添加了代码 sn-ps 和 gist 链接
标签: bazel