如何使用方面检索Bazel工作空间规则的属性



我正在编写一个后构建工具,该工具在Bazel构建后综合了Maven POM文件。我正在使用方面来收集有关各种目标的相关信息

其中一个功能涉及将外部 JAR依赖项添加到相关的POM文件。

让我们假设我们的 workspace 包含以下目标:

maven_jar(
 name = "com_google_guava_guava",
 artifact = "com.google.guava:guava:19.0",
)

和我们的构建文件包含一个目标,该目标的目标是 guava 作为依赖关系

scala_library(
name = "somename",
srcs = glob(["*.scala"]) + glob(["*.java"]),
deps = [
    "@com_google_guava_guava//jar:file" , 
],

方面 为此目标,如何检索 maven_jar的属性,特别是 artifact

(我最接近的是:

[InputFileConfiguredTarget(@com_google_guava_guava//jar:guava-19.0.jar)]

使用ctx.rule.attr.srcs(

我可能只能解析 workspace 外部罐子 targets ,并将其从名称中获取到 artifact 作为混合解决方案,

但是,一个更优雅的解决方案将是该方面本身提供伪像的方面。有可能吗?

"伪像"属性是存储库规则的属性,从skylark无法访问。该工件似乎是可以以某种方式集成到JAR目标中的信息,可以随意在https://github.com/bazelbuild/bazel/bazel/issues/new上提交功能请求,其原因是您需要的原因。

相关内容

  • 没有找到相关文章

最新更新