J'essaie de comprendre comment utiliser bazel pour construire des projets java/scala, donc j'ai créé un projet de jouet qui a quelques classes triviales et un test qui utilise le cadre scalatest. J'ai essayé d'importer toutes les dépendances transitif de maven en créant le fichier d'espace de travail suivant:Importer et utiliser un fichier jarre exernal de maven en utilisant bazel
workspace(name = "scala_bazel_example")
git_repository(
name = "io_bazel_rules_scala",
remote = "git://github.com/bazelbuild/rules_scala",
commit = "aaa6c7d4db4f231a541f20a60760420f4bdd11e8"
)
load("@io_bazel_rules_scala//scala:scala.bzl", "scala_repositories")
scala_repositories()
maven_jar(
name = "junit",
artifact = "junit:junit:4.11",
)
maven_jar(
name = "org_scalatest",
artifact = "org.scalatest:scalatest_2_11:3.0.1",
)
maven_jar(
name = "org_hamcrest",
artifact = "org.hamcrest:hamcrest-core:1.3",
)
selon https://docs.bazel.build/versions/master/be/workspace.html#maven_jar
Alors j'ai essayé de construire mon test avec le fichier BUILD suivant:
scala_test(
name = "example-test",
srcs = glob(["**/*.scala"]),
deps = [
"@org_scalatest//jar",
"@junit//jar",
"@org_hamcrest//jar",
"//src/scala/main/src/com/foo/util:example-lib"]
)
en référençant les bocaux externes comme suggéré dans le lien comme <name>//jar
.
Cependant, quand je construis, je reçois l'erreur suivante:
$ bazel build :example-test
ERROR: /home/ubuntu/.cache/bazel/_bazel_ubuntu/c83ae3b365c8d335f0b135ef3a055202/external/io_bazel_rules_scala/third_party/plugin/src/main/BUILD:5:1: in scala_library_for_plugin_bootstrapping rule @io_bazel_rules_scala//third_party/plugin/src/main:dependency_analyzer:
Traceback (most recent call last):
File "/home/ubuntu/.cache/bazel/_bazel_ubuntu/c83ae3b365c8d335f0b135ef3a055202/external/io_bazel_rules_scala/third_party/plugin/src/main/BUILD", line 5
scala_library_for_plugin_bootstrapping(name = 'dependency_analyzer')
File "/home/ubuntu/.cache/bazel/_bazel_ubuntu/c83ae3b365c8d335f0b135ef3a055202/external/io_bazel_rules_scala/scala/scala.bzl", line 576, in _scala_library_impl
_lib(ctx, True)
File "/home/ubuntu/.cache/bazel/_bazel_ubuntu/c83ae3b365c8d335f0b135ef3a055202/external/io_bazel_rules_scala/scala/scala.bzl", line 503, in _lib
_collect_jars_from_common_ctx(ctx)
File "/home/ubuntu/.cache/bazel/_bazel_ubuntu/c83ae3b365c8d335f0b135ef3a055202/external/io_bazel_rules_scala/scala/scala.bzl", line 486, in _collect_jars_from_common_ctx
_collect_jars(ctx.attr.deps + auto_deps + extr..., ...)
File "/home/ubuntu/.cache/bazel/_bazel_ubuntu/c83ae3b365c8d335f0b135ef3a055202/external/io_bazel_rules_scala/scala/scala.bzl", line 463, in _collect_jars
_collect_jars_when_dependency_analyzer_is_off(dep_targets)
File "/home/ubuntu/.cache/bazel/_bazel_ubuntu/c83ae3b365c8d335f0b135ef3a055202/external/io_bazel_rules_scala/scala/scala.bzl", line 422, in _collect_jars_when_dependency_analyzer_is_off
java_provider.compile_jars
'java_common.provider' object has no attribute 'compile_jars'
Available attributes: transitive_runtime_jars.
ERROR: Analysis of target '//src/scala/test/src/com/foo/util:example-test' failed; build aborted.
INFO: Elapsed time: 0.287s
Est-ce que quelqu'un a une idée de ce que je fais mal? J'ai cherché autour et ne pouvais pas trouver un exemple clair qui a montré comment écrire un ensemble de base de fichiers WORKSPACE et BUILD pour construire un petit projet en fonction de quelques dépendances explicites de maven.
Quelle est la sortie de 'bazel version'? Votre exemple fonctionne pour moi avec bazel 0.5.3. Vos fichiers WORKSPACE et BUILD semblent corrects. – Adam
La version est 0.5.1. – jonderry