주요 jar와 함께 일부 Maven 아티팩트는 종속성을 사용하는 테스트 작성을 돕기위한 클래스가 들어있는 별도의 테스트 jar를 제공합니다. kafka-streams
이 그 예입니다. Gradle에서 classifier: "test"
(테스트 jar의 접미어가 -test.jar
인 경우)을 사용하고 Maven에서 <type>test-jar</type>
을 사용하여 이러한 jar에 의존 할 수 있습니다. Bazel 작업 공간에 테스트 항아리를 추가하는 방법?Bazel의 테스트 Maven 병에 의존하는 방법은 무엇입니까?
답변
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",
)
마지막으로 테스트 해 보았습니다. 광고 된대로 작동합니다. Adam에게 감사드립니다. Skylark 규칙은 드롭 인 대체품으로 사용하기에 안전한 것이거나 고려해야 할 사항입니까? 예 : 왜 이것이 기본값이 아닌가? – raindev
이 기능은 maven_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에 요청하십시오.
나는 네가 행운도없이 제안한 것을 정확하게 시도했다. Adam이 지적한 Skylark 규칙에 따라 기능이 지원되는 경우 문제가 제기 될 수 있습니까? Skylark가 현 세대의 규칙을 대신 지켜줄 것이라는 것을 이해했거나 사실이 아닙니다. – raindev
[raindev] (https://stackoverflow.com/users/2057275/raindev), 정말 다행입니다! Skylark 구현이 작동하면 버그를 신고 할 필요가 없습니다. 감사! –
Gradle을에서 같은 기능에 대한 질문 : https://stackoverflow.com/questions/20224260/how-do-i-pull-maven-test-jars-using-gradle#20225377 – raindev
당신이 쓸 수 테스트를위한 별도의'maven_jar' 규칙? –
그게 정확히 어떻게하는지 알아 내려고하는거야. – raindev