Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vue.js/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bazel-skylark操作能否读取命令行标志(strict_java_deps)_Bazel - Fatal编程技术网

Bazel-skylark操作能否读取命令行标志(strict_java_deps)

Bazel-skylark操作能否读取命令行标志(strict_java_deps),bazel,Bazel,我正在为scala规则实现类似于strictJavaDeps的特性。 如果使用warn或error,我希望能够在运行时进行配置 我似乎记得skylark规则无法创建和访问命令行标志,但我不记得它们是否可以访问现有的标志 主要区别在于,现有的标记已经被解析,因此可能也会在某些ctx中传递。您想要的标记(strict\u java\u deps)目前无法通过Skylark获得。但是,我们没有理由不能将其添加到跟踪中 对于其他标志,上下文可以访问配置片段,配置片段可以访问一些已解析的命令行标志。我认为

我正在为scala规则实现类似于
strictJavaDeps
的特性。
如果使用
warn
error
,我希望能够在运行时进行配置

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

主要区别在于,现有的标记已经被解析,因此可能也会在某些ctx中传递。

您想要的标记(
strict\u java\u deps
)目前无法通过Skylark获得。但是,我们没有理由不能将其添加到跟踪中

对于其他标志,上下文可以访问配置片段,配置片段可以访问一些已解析的命令行标志。我认为您需要的是,然后使用获取,然后从中获取默认的_javac_标志:

# 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
)
然后:


谢谢我要找的标志是
strict\u java\u deps
。我认为这个解决方案对我没有帮助,因为该片段被标记为
SkylarkCallable
,而
strict\u java\u deps
被标记为
选项。我说的对吗?哦,是的,你现在不能访问那个,但我们没有理由不暴露它。存档,谢谢!你能更新你的答案吗?我将接受它,然后编辑以添加错误。
$ bazel build --javacopt="-g:source,lines" :x
WARNING: /home/kchodorow/test/a/tester.bzl:2:3: flags: ["-g:source,lines"].