2016-04-23 2 views
0

Ich mag würde eine tar-Datei für Java-Projekt X erstellen, die von jedem auf Bibliothek abhängt Y & Z mit Struktur wieMit bazel wie eine tar-Dateien mit einzelnen JAR-Dateien erstellen

bin/runx (from src/main/scripts) 
lib/x.jar (the compiled contents of src/main/java) 
lib/y.jar (a maven_jar X depends on) 
lib/z.jar (a maven_jar X depends on) 
conf/x (from src/main/resources/conf/x) 

Ist dies unterstützt der eingebauten Bazel-Regeln? Ist das etwas, was ich mir selbst in skylark oder bash schreiben müsste?

Antwort

0

Ich schaffte es auf eine ziemlich schreckliche Weise zu arbeiten.

https://github.com/yschimke/oksocial/blob/bazel/BUILD

konnte ich nicht eine nette Art und Weise finden Sie die JAR-Dateien von einem Ziel erforderlich zu erweitern.

load("@bazel_tools//tools/build_defs/pkg:pkg.bzl", "pkg_tar") 

pkg_tar(
    name = "bundle-libs", 
    package_dir = "lib", 
    files = [ 
     '//src/main/java/com/baulsupp/oksocial', 
     '@com_squareup_okhttp3_okhttp//jar', 
     '@com_squareup_okhttp3_logging_interceptor//jar', 
     '@com_squareup_okio_okio//jar', 
     '@com_fasterxml_jackson_core_jackson_databind//jar', 
     '@com_fasterxml_jackson_dataformat_jackson_dataformat_yaml//jar', 
     '@com_twitter_joauth//jar', 
     '@com_google_oauth_client_google_oauth_client_jetty//jar', 
     '@com_google_guava_guava//jar', 
     '@org_mortbay_jetty_jetty//jar', 
     '@com_github_mrmike_ok2curl//jar', 
     '@commons_cli_commons_cli//jar', 
     '@commons_lang_commons_lang//jar', 
     '@commons_io_commons_io//jar', 
     '@org_slf4j_slf4j_jcl//jar', 
     '@io_airlift_airline//jar', 
     '@javax_inject_javax_inject//jar', 
    ], 
    mode = "0644", 
) 

pkg_tar(
    name = "bundle-alpn", 
    package_dir = "alpn", 
    files = ["@alpn_boot//jar"], 
    mode = "0644", 
) 

pkg_tar(
    name = "bundle-bin", 
    package_dir = "bin", 
    files = glob(["src/main/scripts/**"]), 
    mode = "0755", 
) 

pkg_tar(
    name = "oksocial-bundle", 
    extension = "tgz", 
    deps = [ 
     ":bundle-bin", 
     ":bundle-libs", 
     ":bundle-alpn", 
    ], 
) 
+0

ich denke, die nette Art Lerche zu verwenden wäre dies statt bash im DSL zu implementieren. –

0

pkg_tar sollte das unterstützen, finden Sie http://bazel.io/docs/be/pkg.html#pkg_tar

+0

Ich hatte es meistens mit pkg_tar arbeiten. Aber ich konnte es nicht bekommen, um die abhängigen Gläser einzufügen. Ich bin bis zu diesem Punkt gelaufen. Weißt du, wie man mit pkg_tar arbeiten kann, ohne Abhängigkeiten neu zu setzen? –

+0

ging zurück zu pkg_tar arbeitete, aber ich bin immer noch stecken Relosting Abhängigkeiten im Moment. –

Verwandte Themen