来自 Skylark 规则的 maven_jar.artifact 的访问值
Access value of maven_jar.artifact from Skylark rule
在我的 Skylark 规则中,我正在查看我的所有部门 - 其中一些是我的 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
。
我认为您需要为此提交功能请求:
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 的内容在分析时不可用(在规则实施中))
在我的 Skylark 规则中,我正在查看我的所有部门 - 其中一些是我的 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
。
我认为您需要为此提交功能请求: 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 的内容在分析时不可用(在规则实施中))