수색…


동일한 빌드 (하위 프로젝트)의 여러 프로젝트

때로는 빌드가 여러 개의 소스 디렉토리를 결합하는 경우가 있는데, 각각은 고유 한 '프로젝트'입니다. 예를 들어, 다음과 같은 빌드 구조를 가질 수 있습니다.

projectName / build.sbt 프로젝트 / src / main / ... 테스트 / ... core / src / main / ... 테스트 / ... webapp / src / main / ... 테스트 / ...

위의 프로젝트에서 projectName/src 의 코드는 root 프로젝트로 간주됩니다. 다른 두 개의 모듈 또는 '하위 프로젝트', corewebapp 있습니다.

하위 프로젝트 구성은 하위 프로젝트가 프로젝트에 지정된다는 점을 제외하고는 루트 프로젝트 구성과 유사합니다. 이 예제는 core 프로젝트와 webapp 프로젝트를 모으는 루트 프로젝트를 보여줍니다.

lazy val root = (project in file(".")).aggregate(core,webapp).dependsOn(core, webapp)

lazy val core = (project in file("core"))

lazy val webapp = (project in file("webapp")).dependsOn(core)

file() 전달 된 값은 프로젝트 루트와 관련된 디렉토리입니다.

webapp 프로젝트는 dependsOn 절에 표시된 core 프로젝트에 따라 달라지며 위의 행에 지정된 core 값을 사용합니다. dependsOnlazy evaluation은 프로젝트가 프로젝트를 사용하기 전에 의존성을 사용할 수 있도록합니다. 이 경우 webappcore 의존하기 때문에 webapp 을 컴파일하려고 시도하기 전에 core 가 컴파일됩니다.

aggregate 는 한 프로젝트에 정의 된 작업을 aggregate 하는 프로젝트에서 사용할 수 있도록합니다. 예를 들어, 실행 compileroot 도 실행됩니다 프로젝트 compilecorewebapp .

프로젝트에서 매크로 구성

build.sbt 파일 (또는 프로젝트가 다른 위치에있는 경우 프로젝트가 정의되는 위치)에 다음 설정을 추가합니다.

scalacOptions += "-language:experimental.macros"

예를 들어 프로젝트는 다음과 같이 정의 될 수 있습니다.

lazy val main = project.in(file("."))  // root project
  .settings(scalacOptions += "-language:experimental.macros",
            addCompilerPlugin("org.scalamacros" % "paradise" % "2.1.0" cross CrossVersion.full))

위의 예에서 Scala 2.10.x 완벽한 지원을 제공하기 위해 paradise plugin이 포함되어 있습니다.

화면 설정

SBT 콘솔에서 프로젝트의 모든 정의 가능한 설정을 나열하려면 다음을 수행하십시오.

settings

또는 하위 프로젝트 (예 : webapp ) 설정을 가져 오려면 다음을 수행하십시오.

project webapp
settings

위의 첫 번째 줄은 특정 하위 프로젝트로 이동합니다.

특정 설정 값 (예 : organization )을 표시하려면 다음을 수행하십시오.

show organization

그러면 해당 설정의 값이 표시됩니다.



Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow