2012-09-26 2 views
2

sbt 프로젝트를 만들었습니다. 명령 행에서 컴파일 SBT 호출하면 잘 작동 : 외부 라이브러리는 lib_managed 디렉토리에 추가되지 않습니다sbteclipse : Eclipse에서 종속 관계를 찾을 수 없습니다.

$:[...]/Scala-Parser$ sbt compile 
[info] Loading global plugins from /home/[...]/.sbt/plugins 
[info] Loading project definition from [...]/Scala-Parser/project 
[info] Set current project to MyProject (in build file:[...]/Scala-Parser/) 
[info] Updating {file:/home/heinzi/ftanml/Scala-Parser/}default-d86d09... 
[info] Resolving org.scala-lang#scala-library;2.9.2 ... 
[info] Done updating. 
[info] Compiling 19 Scala sources to [...]/Scala-Parser/target/scala-2.9.2/classes... 
[warn] there were 3 unchecked warnings; re-run with -unchecked for details 
[warn] one warning found 
[success] Total time: 7 s, completed 26.09.2012 11:01:18 

만 ~/.ivy2에. 그럼에도 불구하고 클래스 컴파일과 의존성을 사용하면 문제가 없습니다. 일식 프로젝트 만들기 도 잘 작동 :

$:[...]/Scala-Parser$ sbt eclipse 
[info] Loading global plugins from /home/[...]/.sbt/plugins 
[info] Loading project definition from [...]/Scala-Parser/project 
[info] Set current project to MyProject (in build file:[...]/Scala-Parser/) 
[info] About to create Eclipse project files for your project(s). 
[info] Successfully created Eclipse project files for project(s): 
[info] MyProject 

를하지만 관리되는 라이브러리에 의해 제공되어야한다 패키지 누락 있기 때문에, 프로젝트를 컴파일 할 수 없습니다 다음 일식 (즉 scalatest를 찾을 수 없습니다). 이 관리 종속성이 Eclipse에 추가되지 않는 이유는 무엇입니까? 여기

내 프로젝트 정의 파일 :

  • 소스는 SRC/메인/스칼라 각각의 SRC/테스트/스칼라
  • 이름 build.sbt에 있습니다 = "MyProject를"

    버전 : = "0.1"

    scalaVersion : = "2.9.2"

  • 프로젝트/plugins.sbt

    addSbtPlugin ("com.typesafe.sbteclipse"% "sbteclipse - 플러그인"% "2.1.0")

  • 프로젝트/build.sbt

    libraryDependencies + = "org.scalatest"%% "scalatest"% "1.8"% "테스트"

내가 SBT 0.11.3 이클립스 인디고를 사용하고 있습니다.

편집 :

일식에서 생성 된 .classpath 보이는 같은 :

<classpath> 
    <classpathentry output="target/scala-2.9.2/classes" path="src/main/scala" kind="src"></classpathentry> 
    <classpathentry output="target/scala-2.9.2/classes" path="src/main/java" kind="src"></classpathentry> 
    <classpathentry output="target/scala-2.9.2/test-classes" path="src/test/scala" kind="src"></classpathentry> 
    <classpathentry output="target/scala-2.9.2/test-classes" path="src/test/java" kind="src"></classpathentry> 
    <classpathentry kind="con" path="org.scala-ide.sdt.launching.SCALA_CONTAINER"></classpathentry> 
    <classpathentry path="org.eclipse.jdt.launching.JRE_CONTAINER" kind="con"></classpathentry> 
    <classpathentry path="bin" kind="output"></classpathentry> 
</classpath> 

EDIT2 :

지금은 콘솔의 "SBT 테스트"도 잘못되고 있다는 것을 발견 일하고있어. 그래서 sbteclipse의 문제가 아니라 테스트 케이스에 대한 종속성을 처리하는 방법에 관한 문제라고 생각합니다. 이 질문에 대한 내 가정이 잘못했기 때문에 나는이에 따라 새로운 질문을했다 : sbt: Add dependency on scalatest library. Where?

+1

'sbt eclipse'가 프로젝트 디렉토리에'.classpath' 파일을 만들었습니까? 그렇다면 해당 파일에 scalatest에 대한 항목이 포함되어 있습니까? – dhg

+0

예 .classpath 및 no를 만들었습니다. 해당 파일에는 scalatest가 포함되어 있지 않습니다. .classpath 파일 내용을 포함하도록 질문을 편집했습니다. – Heinzi

답변

3

당신은

libraryDependencies += "org.scalatest" %% "scalatest" % "1.8" % "test" 

종속성으로 인식 얻을 수있는 루트 디렉토리에 build.sbt에 추가해야합니다.

관련 문제