2017-01-16 3 views
3

SBT 타겟팅 스칼라 버전이지만 다른 버전의 라이브러리를 사용하여 스칼라 소스 코드를 빌드하려고합니다. 내 질문 :SBT를 사용하여 다른 라이브러리 버전 용으로 빌드

  1. SBT는 이것을 지원합니까?
  2. 그렇지 않은 경우 빌드 스크립트를 너무 많이 사용하지 않고이 작업을 수행 할 수있는 방법이 있습니까?

세부 사항 : 나는 스파크 및 기타 라이브러리의 버전이 다른 클러스터에 건물입니다. 이러한 시나리오에서 일반적인 사용자 사례 인 것으로 보입니다.

가능한 솔루션 내가 찾은 : 스칼라의

  1. 를 사용하여 다른 부 버전은 다음 크로스 건물 라이브러리의 다른 버전을 전달합니다. 매우 hackish.
  2. 여러 프로젝트에 더미 디렉토리를 사용하여 원본 경로를 실제 원본 디렉토리로 리디렉션합니다. 이것은 가장 유망한 것 같지만 아직 시도하지 않았습니다.

답변

0

아니요 sbt는 이것을 지원하지 않지만 원하는 경우 음영을 사용할 수 있습니다. 두 개의 서로 다른 라이브러리에서 지원되는 두 가지 다른 버전의 구아바를 사용하려면 다음과 같이 구아바 음영을 사용하십시오.

assemblyShadeRules in assembly := Seq(
    ShadeRule.rename("com.google.guava**" -> "[email protected]").inAll 
    ) 
관련 문제