2011-12-19 3 views
22

프로젝트 트리 외부의 로컬 디렉토리에있는 플러그인을 추가하려면 어떻게해야할까요?/tmp/sbt-sh에있는 https://github.com/steppenwells/sbt-sh.git과 같은 간단한 것을 복제한다고 가정 해 봅시다./tmp/sbt-sh의 플러그인을 사용하기 위해 build.sbt 파일에 무엇을 넣어야합니까?/tmp/sbt- 쉬? project/project/Build.scala이 같은sbt에서 로컬 파일 시스템에있는 플러그인을 어떻게 추가합니까?

답변

18

뭔가를해야 다음 이중으로 중첩 project 디렉토리가 필요하다는 것을

import sbt._ 
object PluginDef extends Build { 
    lazy val projects = Seq(root) 
    lazy val root = Project("plugins", file(".")) dependsOn(shPlugin) 
    lazy val shPlugin = uri("file:///tmp/sbt-sh") 
} 

참고. 나는 .sbt 파일에서이 작업을 수행 할 수있는 방법을 모르고 있습니다. (방법이있을 수 있지만 그게 무엇인지는 모르겠습니다.)

이 내용은 here ("1d 프로젝트 종속성"참조)에 설명되어 있습니다.

+2

고마워. 내가보기 엔 file : // url을 사용할 수 있다는 것을 알지 못했다. addLocalSbtPlugin ("/ tmp/sbtsh ") –

+2

이것도 효과가 있습니다 (시도하지 않았습니다) : 지연된 shPlugin = 파일 ("/ tmp/sbt-sh ") –

+2

또한 잘못된 메시지를 넣으면 오류 메시지가 나타납니다 파일 이름이 약간 잘못되었습니다. 잘못된 빌드 URI (처리기를 사용할 수 없음) : file : /// tmp/sbt-shX/(여기서 sbt-shX는 존재하지 않습니다.) –

10

0.13에는 a) 간단한 방법과 b) 더 나은 문서가 있습니다. @ PaulButcher의 대답은 지금 편집 알려줍니다 section 1d of the sbt documentation for plugins, 지적 프로젝트/plugins.sbt : URI를 (... 파일 ("/ tmp를/SBT-SH"로 대체 할 수

lazy val root = project.in(file(".")).dependsOn(assemblyPlugin) 
lazy val assemblyPlugin = uri("git://github.com/sbt/sbt-assembly#0.9.1") 

그리고 물론

)

관련 문제