2011-03-10 6 views
12

는이 코드를 건너 왔어요 :SBT에서 "str"% "str"은 무엇을 의미합니까?

import sbt._ 

class AProject(info: ProjectInfo) extends DefaultProject(info) { 
    val scalaToolsSnapshots = ScalaToolsSnapshots 
    val scalatest = "org.scalatest" % "scalatest" % 
    "1.0.1-for-scala-2.8.0.RC1-SNAPSHOT" 
} 

그리고 scalatest이 포함되어 있으며, 무엇 %가 무엇을 나는에 관해서 매우 혼란 스러워요.

답변

5

Maven을 사용한 경우 이는 본질적으로 Scala DSL과 동일하지만 마찬가지입니다. 구분 기호로 % 작품 :

<dependency> 
     <groupId>org.scalatest</groupId> 
     <artifactId>scalatest</artifactId> 
     <version>1.0.1-for-scala-2.8.0.RC1-SNAPSHOT</version>  
</dependency> 

자세히보기 : 그것은 종속성을 선언 http://code.google.com/p/simple-build-tool/wiki/LibraryManagement

12

. 특히,

val scalatest = "org.scalatest" % "scalatest" % "1.0.1-for-scala-2.8.0.RC1-SNAPSHOT 

http://scala-tools.org/repo-snapshots/org/scalatest/scalatest/1.0.1-for-scala-2.8.0.RC1-SNAPSHOT/

에서 찾을 수 있습니다 종속성을 의미 경우 모든 org이 다른 곳에서 정의 (사전) 인 저장소를 참조하기 전에.

그것은 기록을 위해, String% 수 있지만, 그 암시를 쉽게 찾을 수없는, 그것은 StringGroupID로 변환, ManagedProject에 있습니다. 동일한 특성에는 at 방법을 가능하게하는 암시 적 요소도 있습니다. 여하튼

내재는 GroupID로 제 String 바뀔 것이다, 제 %이 이슈 ID를 나타내는 String을 취하고 GroupArtifactID을 반환하고 상기 제가 개정을 나타내는 String 걸릴 및 ModuleID를 반환, 결국 scalatest에 할당됩니다.

+0

사실, sbt는 여러 서버에서 패키지를 확인합니다. 그렇지 않습니까? – Raphael

+0

@Raphael 기본적으로 yes입니다. 나는 의존성이 그 길에서 발견 될 수 있다고 말했지 만 그것이 그 곳을 찾을 유일한 장소는 아니다. 반면에,'org' 앞에 나오는 것들은 각각의 룩업을 위해 바뀔 것입니다. –

+2

후속 질문은 같은 경우에 이중 퍼센트'%% '가 의미하는 것입니다. 나는 내가 여기 물어 봤거나 여기 또는 다른 곳에서 대답을 본 것 같은 느낌이지만 그것을 찾을 수 없습니다 :-( – Ivan