종속성이있는 여러 모듈을 개발 중이며 하나의 IDEA 프로젝트에서 모두 함께 작업하고 싶습니다. sbt-idea 를 사용하여 sbt 빌드 정의에서 IDEA 프로젝트를 생성하고 있으며 이는 개별 프로젝트에 적합합니다. 그러나 다중 모듈의 경우 지금까지 시도한 것이 제대로 작동하지 않습니다.
sbt-idea를 사용하여 각 모듈에 대해 독립적으로 IDEA .iml 파일을 생성하십시오 . 그런 다음 처음부터 마스터 IDEA 프로젝트를 만들고 해당 모듈을 추가합니다. 이렇게하면 모듈 소스를 모두 같은 창에서 편집 할 수 있지만 종속성은 추적되지 않습니다 (따라서 foo 프로젝트 내의 일부 소스 에서 bar의 항목 으로 이동하려고 하면 로컬 소스가 아닌 bar 의 가져온 라이브러리 버전으로 이동 합니다. ).
sbt 다중 프로젝트 빌드 (하위 프로젝트라고도 함)를 사용합니다 . 여기서 상위 프로젝트의 Build.scala에는 다음과 같은 항목이 포함됩니다.
lazy val foo = Project(id = "foo", base = file("foo"))
lazy val bar = Project(id = "bar", base = file("bar")) dependsOn(foo)
이는 sbt-idea가 추적 된 하위 프로젝트 간의 종속성으로 마스터 IDEA 프로젝트를 생성한다는 점에서 거의 작동합니다. 그러나 두 가지주의 사항이 있습니다.
- 하위 프로젝트가 마스터 프로젝트의 하위 디렉터리에 있어야한다는 것은 sbt 제한 인 것 같습니다 (즉,
file("../foo")
허용되지 않음). 이것은 실제로 내가 원하는 것은 아니지만 ( "utils"또는 "commons"패키지와 같은 모듈이 두 개의 다른 마스터 프로젝트에서 사용된다면 어떻게 될까요?)하지만 함께 살 수 있습니다. - 내 하위 프로젝트 중 하나에는 자체 하위 프로젝트가 있습니다. sbt 자체가 이러한 중첩 된 프로젝트를 올바르게 처리하는지 여부는 확실하지 않지만 어쨌든 sbt-idea에서는 무시됩니다. 분명히 마스터 프로젝트에 재귀 적으로 포함될 중첩 된 하위 프로젝트가 필요합니다.
요약하면 : 편리한 편집을 위해 추적 된 종속성이있는 하나의 큰 IDEA 프로젝트에 하위 프로젝트가 이미있을 수있는 모듈을 수집하고 싶습니다 . 어떻게하니? 감사!