请参阅缓存的bazel目标上的编译警告

ors*_*har 12 java compilation build bazel

Bazel在清理编译(java)期间显示所有编译警告.

但是 - 当我们重新运行bazel build时 - 我们失去了所有的警告.

是否有任何标志可以显示缓存目标的原始警告?

示例回购: https ://github.com/or-shachar/bazel-sample-repo/tree/warning(branch warning)

首次输出:

? bazel build //...
INFO: Found 1 target...
INFO: From Building src/main/java/com/example/libmy_warning_lib.jar (1 source file):
src/main/java/com/example/MyLib.java:12: warning: [static] static variable should be qualified by type name, MyLib, instead of by an expression
      this.x = this.x + 2.1;
          ^
src/main/java/com/example/MyLib.java:12: warning: [static] static variable should be qualified by type name, MyLib, instead of by an expression
      this.x = this.x + 2.1;
                   ^
Target //src/main/java/com/example:my_warning_lib up-to-date:
  bazel-bin/src/main/java/com/example/libmy_warning_lib.jar
INFO: Elapsed time: 3.286s, Critical Path: 1.03s
Run Code Online (Sandbox Code Playgroud)

下次运行:

? bazel build //...
INFO: Found 1 target...
Target //src/main/java/com/example:my_warning_lib up-to-date:
  bazel-bin/src/main/java/com/example/libmy_warning_lib.jar
INFO: Elapsed time: 0.244s, Critical Path: 0.01s
Run Code Online (Sandbox Code Playgroud)

正如您所看到的 - 我们正在丢失缓存运行时的警告.如果某些标志无法使用 - 可能值得添加为功能.

小智 2

这是不可能的,因为错误来自作为操作执行一部分的工具。如果操作未更改,则不会重新运行(这就是增量构建速度更快的原因),因此该工具不会被重新调用,您也不会看到错误。