简体   繁体   English

如何依赖Bazel中的测试Maven jar?

[英]How to depend on a test Maven jar in Bazel?

Some Maven artifacts in addition to the main jar provide a separate test jar which contains classes to aid with writing tests that use the dependency. 除了主jar之外,某些Maven工件还提供了一个单独的测试jar,其中包含一些类,以帮助编写使用依赖项的测试。 kafka-streams is one example. kafka-streams是一个示例。 In Gradle it's possible to depend on such a jar using classifier: "test" (if the test jar has -test.jar suffix) and in Maven that would be <type>test-jar</type> . 在Gradle中,可以使用classifier: "test" (如果测试罐具有-test.jar后缀)来依赖于这样的jar,而在Maven中,它可以是<type>test-jar</type> How to add a test jar to a Bazel workspace? 如何将测试罐添加到Bazel工作区?

The Skylark maven_jar implementation supports this, with the artifact syntax of group:artifact:version:packaging:classifier . 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",
)

I think this feature is missing from maven_jar . 我认为maven_jar缺少此功能。

I could write a rule for the main jar: 我可以为主罐子写一个规则:

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

But I could not write one for the test jar, this didn't work: 但是我无法为测试罐编写一个,这是行不通的:

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

I recommend filing a feature request at https://github.com/bazelbuild/bazel/issues/new . 我建议在https://github.com/bazelbuild/bazel/issues/new提交功能请求。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM