Как отладить правило java_library в сборке базеля?

Я копался в опциях и исходном коде, но все еще не знал, как отлаживать сборку bazel, особенно java.

Также любой знает, как я могу изменить bazel, собрать его локально и использовать для сборки. Я нашел базовый вызов: exec -a "$0" "${BAZEL_REAL}" "$@"

где BAZEL_REAL - это двоичный файл: /usr/local/Cellar/bazel/0.15.2/libexec/bin/bazel-real

Но это не объясняет близко, как это начинается и как я могу отладить это...

Например, можно ли подключиться и отладить com.google.devtools.build.lib.bazel.rules.java.BazelJavaLibraryRule при сборке моего кода? Например, если я создаю свой код с помощью Maven, я могу сделать mvnDebug.

bazel build -s
➜  bazel git:(master) ✗ bazel build //examples/java-native/src/main/java/com/example/myproject:hello-world -s
BAZEL_REAL==/usr/local/Cellar/bazel/0.15.2/libexec/bin/bazel-real
INFO: Analysed target //examples/java-native/src/main/java/com/example/myproject:hello-world (15 packages loaded).
INFO: Found 1 target...
Target //examples/java-native/src/main/java/com/example/myproject:hello-world up-to-date:
  bazel-bin/examples/java-native/src/main/java/com/example/myproject/hello-world.jar
  bazel-bin/examples/java-native/src/main/java/com/example/myproject/hello-world
INFO: Elapsed time: 4.943s, Critical Path: 0.29s
INFO: 0 processes.
INFO: Build completed successfully, 2 total actions

1 ответ

Не берите в голову, https://www.bazel.build/contributing.html содержит информацию, в которой я нуждаюсь.

В основном для начинающих

bazel --host_jvm_debug build //:*

порядок аргументов значим. Например, ниже не будет работать

bazel build //:* --host_jvm_debug 

Чтобы отладить jvm работника, получите команду с bazel build -s, а затем добавьте опции запуска удаленной отладки.

Другие вопросы по тегам