Могут ли аспекты Bazel получить доступ к java_common.provider текущей цели

В рамках наших усилий по созданию инструмента взаимодействия перехода между базиликом и мейвом (который создает банки размером с мавена из более мелких зернистых банок), мы хотим, чтобы aspect который работает на bazel build чтобы получить доступ к цели java_common.provider для того, чтобы получить из него банки и ижары.

Это возможно?

1 ответ

Решение

Короткий ответ - да, это возможно.

Вы можете использовать java_common Модуль в реализации аспекта так же, как вы использовали бы его в реализации правила.

Из документации на java_common.provider:

  • java_common.provider.compile_jars а также java_common.provider.transitive_compile_time_jars обратитесь к ijars, использованным во время компиляции
  • java_common.provider.transitive_runtime_jars обратитесь к полным банкам, используемым во время выполнения.

Полные фляги во время компиляции еще не доступны, но кто-то работает над раскрытием этой функции. (Выпуск № 3528 на GitHub.)

Обязательно прочитайте сообщение в блоге на эту тему: https://blog.bazel.build/2017/03/07/java-sandwich.html

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