我正在编写一个后构建工具,在构建bazel之后合成maven pom文件.我正在使用方面收集有关各种目标的相关信息. 其中一个功能涉及将外部jar依赖项添加到相关的pom文件中. 让我们假设我们的
其中一个功能涉及将外部jar依赖项添加到相关的pom文件中.
让我们假设我们的工作区包含以下目标:
maven_jar( name = "com_google_guava_guava", artifact = "com.google.guava:guava:19.0", )
我们的一个BUILD文件包含一个以番石榴作为依赖关系的目标
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目标并获得从名称到工件的映射作为混合解决方案,
但更优雅的解决方案是为方面提供工件本身.可能吗?
“artifact”属性是存储库规则的属性,无法从Skylark访问.该工件看起来像是一种可以以某种方式集成到jar目标中的信息,随意在 https://github.com/bazelbuild/bazel/issues/new处提交功能请求,以及您需要它的原因.