在我的Skylark规则中,我正在查看我的所有deps - 其中一些是我的WORKSPACE文件中定义的maven_jar实例。对于那些,我想访问maven_jar.artifact
的值,但据我所知,它是不可用的。是否有可能获得该值?
例如,如果我的WORKSPACE有:
maven_jar(
name = "com_google_guava_guava",
artifact = "com.google.guava:guava:20.0",
)
我的BUILD文件有这样的东西:
my_rule(
name = "foo",
deps = ["@com_google_guava_guava//jar"]
)
在my_rule
的实现中,我希望得到值com.google.guava:guava:20.0
。
答案 0 :(得分:2)
我认为您需要为此提交功能请求: https://github.com/bazelbuild/bazel/issues/new
工作区文件中maven_jar
规则的实例不可用于BUILD文件中的规则,只有工作空间规则生成的规则(即@com_google_guava_guava//jar
)。在我的脑海中,maven_jar
必须在jar的工作空间中生成一个规则,该规则具有值artifact
的属性,并且该规则需要创建一个包含其他消费规则的价值。
(罐子里面确实有META-INF/maven/com.google.guava/guava/pom.xml
,它似乎有你想要的信息,但我不知道你是否可以依靠maven的所有罐子,但无论如何,jar的内容在分析时(在规则实现中)不可用)