Я хотел бы создать модифицированный пример, используя это правило - java_war
https://github.com/bmuschko/rules_java_war
WEB-INF и META-INF доступны в источнике но контент пользовательского интерфейса, то есть JS / HTML / CSS, поступает из удаленной артефактной ссылки в виде TGZ.
Есть ли пример для создания WAR с веб-контентом, созданным на лету
- Загрузка файла TGZ
- Распаковка файла TGZ
- Перемещение части извлеченного содержимого в WAR как веб-содержимое
Я чувствую например, web_app_srcs поможет, но сложно собрать все вместе. Любые указатели / примеры помогут.
Попробуйте что-то подобное, но не сможете приблизиться даже к тому, чтобы заставить его работать (с очень смутным знанием Базеля)
// WORKSPACE
http_file(
name = "ui_bundle",
urls = ["https://domain/artifact.tgz"],
sha256 = "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
downloaded_file_path = "@ui_bundle://downloaded_file_path"
)
// BUILD
load("@io_bazel_rules_java_war//java_war:defs.bzl", "java_war")
filegroup(
name = 'ui_source',
srcs = ['//ui_bundle:downloaded_file_path'],
visibility = ['//visibility:public'],
)
java_war(
name = "web-app",
java_srcs = glob(["java/**/*.java"]),
web_app_dir = "web",
web_app_srcs = "ui_source",
deps = [
"@maven//:org_mortbay_jetty_servlet_api",
],
)