나는 SBT에 대한 몇 가지 질문이 'dependOn'절을 사용하는 옵션이 왜SBT, 몇 가지 질문 :의 DependsOn
1) 내가 궁금하네요. 나는 이것이 프로젝트에 참여한다는 것을 충분히 이해합니다.
lazy val projectA = Project("A", file("a"))
lazy val projectB = Project("B", file("b")).dependsOn(projectA)
이 코드에서 싫어하는 것 : 당신은 projectB에 PROJECTA의 버전을 지정할 수 없습니다. 항상 projectA의 최신 조건을 집계합니다. 모든 하위 프로젝트가 서로 밀접하게 결합되어있는 경우 응용 프로그램을 다중 프로젝트로 분할하는 이유는 무엇입니까?
다른 옵션이 있습니다. 서브 프로젝트를 버전이있는 바이너리 저장소에 게시하고 설정에 종속성으로 추가 할 수 있습니다. 이 코드를 사용하지 않는 이유는
: 나오긴의
lazy val projectA = project("A", file("a"))
lazy val projectB = Project("B", file("b")).settings(libraryDependencies ++= Seq("groupOfA" %% "A" % "versionOfA"))
, 당신이 바이너리 저장소가 있어야합니다. 하지만 문제는 아니며 로컬에서 넥서스를 설치할 수 있습니다 (거의 모든 것을 지원하고 자유롭게 사용할 수 있습니다). oss.sonatype.org를 사용하십시오.
2)이 질문은 첫 번째 질문과 관련이 있습니다. 왜 'publishLocal'작업이 있는지 이해할 수 없습니다. SBT는 Ivy2 저장소를 사용하지만, 프로젝트를 넥서스 또는 oss.sonatype.org에 게시 할 때 maven2 저장소에 게시합니다. 그리고 문제는 sbt가 로컬에서 게시되고 maven에서 캐시 된 것을 감지 할 때 발생합니다. 오류가 발생합니다. 나는 이것이 sbt 버그 (https://github.com/sbt/sbt/issues/2687)라고 생각합니다. publishLocal을 더 이상 사용하지 않고, 다중 컴포넌트로 애플리케이션을 분할하려는 경우 왜 바이너리 저장소를 설치하지 않았는지 이해하지 못합니다.
답변 해 주셔서 감사합니다. –