如何依赖 Bazel 中的测试 Maven jar?
How to depend on a test Maven jar in Bazel?
除了主 jar 之外,一些 Maven 工件提供了一个单独的测试 jar,其中包含 类 以帮助编写使用依赖项的测试。 kafka-streams
就是一个例子。在 Gradle 中,可以使用 classifier: "test"
来依赖这样的 jar(如果测试 jar 具有 -test.jar
后缀),而在 Maven 中则为 <type>test-jar</type>
。如何将测试 jar 添加到 Bazel 工作区?
我认为 maven_jar
缺少此功能。
我可以为主 jar 写一个规则:
maven_jar(
name = "org_apache_kafka",
artifact = "org.apache.kafka:kafka-streams:1.0.0",
sha1 = "a6c87c367176beb7650eb2df173fd9fe6e38656f",
)
但是我不能为测试 jar 写一个,这没有用:
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 提交功能请求。
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",
)
除了主 jar 之外,一些 Maven 工件提供了一个单独的测试 jar,其中包含 类 以帮助编写使用依赖项的测试。 kafka-streams
就是一个例子。在 Gradle 中,可以使用 classifier: "test"
来依赖这样的 jar(如果测试 jar 具有 -test.jar
后缀),而在 Maven 中则为 <type>test-jar</type>
。如何将测试 jar 添加到 Bazel 工作区?
我认为 maven_jar
缺少此功能。
我可以为主 jar 写一个规则:
maven_jar(
name = "org_apache_kafka",
artifact = "org.apache.kafka:kafka-streams:1.0.0",
sha1 = "a6c87c367176beb7650eb2df173fd9fe6e38656f",
)
但是我不能为测试 jar 写一个,这没有用:
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 提交功能请求。
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",
)