如何依靠Bazel的测试Maven jar?

时间:2017-12-01 21:03:27

标签: java dependency-management bazel

除了主jar之外,一些Maven工件还提供了一个单独的测试jar,其中包含有助于编写使用依赖项的测试的类。 kafka-streams就是一个例子。在Gradle中,可以使用classifier: "test"(如果测试jar具有-test.jar后缀)并且在Maven中<type>test-jar</type>依赖于此类jar。如何将测试jar添加到Bazel工作区?

2 个答案:

答案 0 :(得分:5)

Skylark maven_jar实现支持此功能,其工件语法为group:artifact:version:packaging:classifier

load("@bazel_tools//tools/build_defs/repo:maven_rules.bzl", "maven_jar")
maven_jar(
    name = "org_apache_kafka_test",
    artifact = "org.apache.kafka:kafka-streams:1.0.0:jar:test",
    sha1 = "b275b72148aad7a59cc12f1005507d61fc0ae77b",
)

答案 1 :(得分:1)

我认为maven_jar缺少此功能。

我可以为主jar写一条规则:

maven_jar(
    name = "org_apache_kafka",
    artifact = "org.apache.kafka:kafka-streams:1.0.0",
    sha1 = "a6c87c367176beb7650eb2df173fd9fe6e38656f",
)

但我不能为测试罐写一个,这不起作用:

maven_jar(
    name = "org_apache_kafka_test",
    artifact = "org.apache.kafka:kafka-streams:1.0.0-test",
    sha1 = "b275b72148aad7a59cc12f1005507d61fc0ae77b",
)

我建议在https://github.com/bazelbuild/bazel/issues/new提交功能请求。