2017-10-18 6 views
0

Comment spécifier groupid, artefact et version directement dans la section dépendances du fichier BUILD en utilisant Bazel? J'essaye de convertir un projet gradle simple en projet bazel. Je ne peux pas vraiment utiliser generate_workspace depuis que j'ai un projet gradle (pas maven).Comment spécifier groupid, artefact et version directement dans la section dépendances du fichier BUILD en utilisant Bazel?

Je me demande s'il y a juste un moyen plus facile de spécifier GAV dans les dépendances lui-même dans le fichier BUILD il ressemblerait à quelque chose comme ça

java_binary(
    name = "HelloWorld", 
    srcs = glob(["src/main/java/**/*.java"]), 
    resources = glob(["src/main/resources/**"]), 
    deps = ["com.fasterxml.jackson.core:jackson-core:2.8.8"], 
    main_class = "com.hello.sample.Foo" 
) 

Répondre

1

Avez-vous essayé d'utiliser maven_jar() directement?

dans Workspace:

maven_jar(
    name = "com_google_guava_guava", 
    artifact = "com.google.guava:guava:18.0", 
    sha1 = "cce0823396aa693798f8882e64213b1772032b09", 
) 

En BUILD:

java_binary(
    name = "HelloWorld", 
    srcs = glob(["src/main/java/**/*.java"]), 
    resources = glob(["src/main/resources/**"]), 
    deps = ["@com_google_guava_guava//jar"], 
    main_class = "com.hello.sample.Foo" 
) 

Voir https://docs.bazel.build/versions/master/be/workspace.html#maven_jar

+0

dois-je utiliser la fonction 'maven_jar()' pour chacun de mes dépendances? existe-t-il une fonction 'maven_jars()' qui prend un tableau? – user1870400

+0

Oui, vous le faites, et il n'y a pas de fonction maven_jars(), bien que vous puissiez écrire vous-même une telle fonction en tant que macro en utilisant Skylark dans un fichier .bzl. https://docs.bazel.build/versions/master/skylark/macros.html – Jin

+0

Il y a aussi https://github.com/johnynek/bazel-deps, qui pourrait être utile. – Jin