我正在编写一个构建后工具,在构建bazel之后合成maven pom文件。我正在使用方面收集各种目标的相关信息。
其中一项功能涉及将外部 jar依赖项添加到相关的pom文件中。
假设我们的 工作区 包含以下目标:
maven_jar(
name = "com_google_guava_guava",
artifact = "com.google.guava:guava:19.0",
)
我们的 BUILD 文件之一包含一个将 guava 作为依赖项的目标
scala_library(
name = "somename",
srcs = glob(["*.scala"]) + glob(["*.java"]),
deps = [
"@com_google_guava_guava//jar:file" ,
],
在此目标的方面中,如何检索 maven_jar 的属性,特别是工件?
(我能得到的最接近的是:
[InputFileConfiguredTarget(@com_google_guava_guava//jar:guava-19.0.jar)]
使用ctx.rule.attr.srcs
)
我可能只是解析工作区外部jar 目标,并从名称到工件获取一个地图作为混合解决方案,< / p>
但更优雅的解决方案是为方面提供工件。有可能吗?
答案 0 :(得分:1)
&#34;神器&#34; attribute是存储库规则的一个属性,无法从Skylark访问。该工件看起来像是一种可以以某种方式集成到jar目标中的信息,可以随时在https://github.com/bazelbuild/bazel/issues/new提交功能请求,以及您需要它的原因。