2012-04-09 3 views
2

저는 SBT에서 새롭고 내 작업을 IntellijIDEA로 마이그레이션하려고합니다.SBT 종속성에 Java 미완료 프로젝트 추가

Eclipse를 사용하여 만든 자바 프로젝트가 있으며 이제는 scala와 함께 사용하려고합니다.

그러나 Java 프로젝트는 끊임없이 변화하고 jar를 컴파일하고 lib 폴더에 넣고 싶지 않습니다.

이 종속성을 추가하는 간단한 방법이 있습니까?

답변

4

하는의 당신이 두 개의 프로젝트가 있다고 가정하자

1) /main-project에서를, 당신이 /other-project에서 라인 name := "main-project-id"

2)를 포함 build.sbt을 가지고, 당신은 build.sbt 라인 name := "other-project-id"

을 포함을 만들 수 있습니다 파일을 추가하여 Main 프로젝트에서 Other 프로젝트로의 종속성 /main-project/project/Build.scala :

import sbt._ 
import Keys._ 

object MainProjectBuild extends Build { 
    lazy val main = Project(id = "main-project-id", base = file(".")) dependsOn(other) 
    lazy val other = Project(id = "other-project-id", base = file("other-project")) 
} 

/other-project에 대한 링크를 /main-project 안에 추가하십시오. 뭔가 같은 : 당신은 지금라는 디렉토리에 other-project이 너무

cd /main-project 
ln -s ../other-project other-project 

: /main-project/other-project/.

sbt compile 또는 /main-project을 실행하면 예상대로 작동합니다.

편집

다른, 아마도 간단한 방법은 단지 그들이 동일한 소스 디렉토리에있는 것처럼 보이게하여 자바 소스에 링크를 생성하는 것입니다. 당신의 스칼라 코드가 /main-project/src/main/scala/somepackage/...에 당신의 자바 코드가 /other-project/src/main/java/otherpackage/...에있는 경우

그래서, 당신은 할 수 :

cd /main-project/src/main 
ln -s /other-project/src/main/java java 

다음 /main-project/src/main/java 그냥 의존성 소스를 가리키는 것이다 디렉토리하지만 SBT는 그것을 만들 것이다 모두 함께.

+0

흠 ... 다른 build.sbt를 만들거나 디렉토리 작동을 지적하는 것이 정말로 필요합니까? 또한 폴더를'main-project /'폴더로 옮길 필요가 있습니까? –

+0

@Tiago, 아마도 더 간단한 아이디어로 편집 됨 – dhg

+0

내가 일하고 싶을 때마다 전화해야만합니까? 단순 해 보이지 않습니다. 그리고 나는 여전히 프로젝트 위치를 옮겨야한다는 문제가있다. 그러나 분명히 나는 ​​복잡하게하고 싶지 않다. 나는 Intellij로 이사하려고 보자. 두 옵션 모두에 대해 감사드립니다. –

관련 문제