Я пишу инструмент для пост-сборки, который синтезирует файлы pom maven после сборки bazel. Я использую аспекты для сбора соответствующей информации о различных целях.
Одна из функций включает добавление внешних зависимостей jar к соответствующим файлам pom.
Предположим, наша рабочая область содержит следующую цель:
maven_jar(
name = "com_google_guava_guava",
artifact = "com.google.guava:guava:19.0",
)
и один из наших файлов BUILD содержит цель, у которой в качестве зависимости guava
scala_library(
name = "somename",
srcs = glob(["*.scala"]) + glob(["*.java"]),
deps = [
"@com_google_guava_guava//jar:file" ,
],
В аспекте для этой цели, как можно получить атрибуты maven_jar, в частности артефакт?
(Самое близкое, что я смог найти, было:
[InputFileConfiguredTarget(@com_google_guava_guava//jar:guava-19.0.jar)]
Используя ctx.rule.attr.srcs
)
Возможно, я мог бы просто проанализировать рабочую область внешние jar-файлы target и получить карту от имени до артефакта в качестве гибридного решения,
но гораздо более элегантным решением было бы, чтобы аспект предоставлял артефакт сам по себе. Является ли это возможным?