2017-12-01 24 views
1

주요 jar와 함께 일부 Maven 아티팩트는 종속성을 사용하는 테스트 작성을 돕기위한 클래스가 들어있는 별도의 테스트 jar를 제공합니다. kafka-streams이 그 예입니다. Gradle에서 classifier: "test" (테스트 jar의 접미어가 -test.jar 인 경우)을 사용하고 Maven에서 <type>test-jar</type>을 사용하여 이러한 jar에 의존 할 수 있습니다. Bazel 작업 공간에 테스트 항아리를 추가하는 방법?Bazel의 테스트 Maven 병에 의존하는 방법은 무엇입니까?

+0

Gradle을에서 같은 기능에 대한 질문 : https://stackoverflow.com/questions/20224260/how-do-i-pull-maven-test-jars-using-gradle#20225377 – raindev

+0

당신이 쓸 수 테스트를위한 별도의'maven_jar' 규칙? –

+0

그게 정확히 어떻게하는지 알아 내려고하는거야. – raindev

답변

4

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", 
) 
+0

마지막으로 테스트 해 보았습니다. 광고 된대로 작동합니다. Adam에게 감사드립니다. Skylark 규칙은 드롭 인 대체품으로 사용하기에 안전한 것이거나 고려해야 할 사항입니까? 예 : 왜 이것이 기본값이 아닌가? – raindev

1

이 기능은 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에 요청하십시오.

+0

나는 네가 행운도없이 제안한 것을 정확하게 시도했다. Adam이 지적한 Skylark 규칙에 따라 기능이 지원되는 경우 문제가 제기 될 수 있습니까? Skylark가 현 세대의 규칙을 대신 지켜줄 것이라는 것을 이해했거나 사실이 아닙니다. – raindev

+0

[raindev] (https://stackoverflow.com/users/2057275/raindev), 정말 다행입니다! Skylark 구현이 작동하면 버그를 신고 할 필요가 없습니다. 감사! –