This seems to be working fine for me. What errors are you encountering? Do you have a minimal reproduction of the problem?
$ cat BUILD
java_library(
name = "A",
srcs = ["A.java"],
deps = [":B"],
)
java_library(
name = "B",
srcs = ["B.java"],
deps = [":C"],
)
java_library(
name = "C",
srcs = ["C.java"],
)
$ cat A.java
package foo;
public class A {
B b;
C c;
}
$ cat B.java
package foo;
public class B {
C c;
}
$ cat C.java
package foo;
public class C {
}
$ bazel build A
INFO: Build option --experimental_strict_java_deps has changed, discarding analysis cache.
INFO: Analyzed target //:A (0 packages loaded, 445 targets configured).
INFO: Found 1 target...
ERROR: /home/ahumesky/bazel-workspaces/java-strict-deps/BUILD:1:13: Building libA.jar (1 source file) failed: (Exit 1): java failed: error executing command external/remotejdk11_linux/bin/java -XX:+UseParallelOldGC -XX:-CompactStrings '--patch-module=java.compiler=external/remote_java_tools_linux/java_tools/java_compiler.jar' ... (remaining 15 argument(s) skipped)
A.java:5: error: [strict] Using type foo.C from an indirect dependency (TOOL_INFO: "//:C"). See command below **
C c;
^
** Please add the following dependencies:
//:C to //:A
** You can use the following buildozer command:
buildozer 'add deps //:C' //:A
Target //:A failed to build
Use --verbose_failures to see the command lines of failed build steps.
INFO: Elapsed time: 0.488s, Critical Path: 0.16s
INFO: 4 processes: 2 internal, 2 worker.
FAILED: Build did NOT complete successfully
$ bazel build A --strict_java_deps=off
INFO: Build option --experimental_strict_java_deps has changed, discarding analysis cache.
INFO: Analyzed target //:A (0 packages loaded, 445 targets configured).
INFO: Found 1 target...
Target //:A up-to-date:
bazel-bin/libA.jar
INFO: Elapsed time: 0.432s, Critical Path: 0.15s
INFO: 4 processes: 1 internal, 3 worker.
INFO: Build completed successfully, 4 total actions