gpt4 book ai didi

Bazel- lark Action 可以读取命令行标志吗(strict_java_deps)

转载 作者:行者123 更新时间:2023-12-04 03:11:41 26 4
gpt4 key购买 nike

我正在为 rules_scala 实现类似 Strict Java Deps 的功能。
如果使用 warnerror,我真的很想能够在运行时进行配置。

我似乎记得 skylark 规则无法创建和访问命令行标志,但我不记得它们是否可以访问现有的?

主要区别是现有的已经被解析,所以它们可能也在一些 ctx 中传递。

最佳答案

您想要的标志 (strict_java_deps) 目前无法通过 Skylark 获得。但是,我们没有理由不能添加它,已提交 #3295跟踪。

对于其他标志,上下文可以访问配置片段,这些片段可以访问一些已解析的命令行标志。我想你想要的是 ctx.fragments , 然后使用 fragments得到 java fragments ,然后从中获取 default_javac_flags:

# rules.bzl
def _impl(ctx):
print("flags: %s" % ctx.fragments.java.default_javac_flags)
...

frag = rule(
implementation = _impl,
fragments = ["java"], # Declare that this rule uses java fragments
)

然后:

$ bazel build --javacopt="-g:source,lines" :x
WARNING: /home/kchodorow/test/a/tester.bzl:2:3: flags: ["-g:source,lines"].

关于Bazel- lark Action 可以读取命令行标志吗(strict_java_deps),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44827704/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com