RSS 피드 수집을 재미삼아 scala + spray + redis + rome 구성으로 만든 것의 실제로 사용한 sbt 파일입니다.
따로 문서를 만들어서 설명했던 것은 아니라서 아주 짧게 보충 설명합니다.
plugins.sbt 에서 sbt 버전에따라 다른 플러그인을 쓸 수 있도록 하는건 아래를 보면 참고할만합니다.
Build.scala & Dependencies.scala 파일이 중요한데.
Dependencies.scala 파일은 필수가 아니고 그냥 종속되는 라이브러리만 분리해놓은 파일에 불과합니다.
디펜던시 모듈은 아래에처럼 선언합니다. 이걸 수행하면 ModuleID 인스턴스가 생성됩니다.
아래 코드처럼 %% 가 붙은 것은 scala 버전에따라 알맞게 받도록 하기위함입니다. 스칼라 버전이 2.10.1 이라면
"com.geekple" % "gmetrics-server_2.10.1" % "0.1"
과 동일합니다.
메이븐에서처럼 scope을 정의할 때 사용할 때 일괄로 할 때 쓰는 그냥 메서드.
특정 레파지토리에 없는 라이브러리를 쓰고 싶을 때 이 예제에서는 custom-libs 디렉토리에 있는 jar파일을 포함시키기위해 사용하는 코드입니다. (물론 이렇게만 하면 되는게 아니고 Build.scala에서 사용합니다.)
메이븐에서도 외부 레파지토리를 선언할 수 있는데 그런 예제입니다. (이것도 Build.scala에서 씁니다.)
보통 SettingKey를 선언할 때는
~
필요한 라이브러리는 이런식으로 사용하면 됩니다.
이 예제는 멀티 모듈을 설명함으로
root / common / server / client 모듈 선언
dependsOn 메서드는 모듈간 참조라고 보시면 되고
settings 메서드는 SettingKey 정보를 넣습니다.
defaultSettings: _*
위의 코드처럼 이상한게 있는데 이건 아래 예제보면 이해가 되실꺼예요.
scala> def sum(values: Int*) = values.sum
scala> sum(Seq(1, 2, 3): _*)
res6: Int = 6
발로 설명했는데 이해해주세요;;;; 제가 갈 시간이 되서.