오늘 아주 잠깐 설명했던 심플하지 않은 SBT

118 views
Skip to first unread message

Daegeun Kim

unread,
May 12, 2013, 5:11:55 AM5/12/13
to scala...@googlegroups.com
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" 
특정 레파지토리에 없는 라이브러리를 쓰고 싶을 때 이 예제에서는 custom-libs 디렉토리에 있는 jar파일을 포함시키기위해 사용하는 코드입니다. (물론 이렇게만 하면 되는게 아니고 Build.scala에서 사용합니다.)

메이븐에서도 외부 레파지토리를 선언할 수 있는데 그런 예제입니다. (이것도 Build.scala에서 씁니다.)


보통 SettingKey를 선언할 때는

~

처럼 선언을 합니다. Seq 오브젝트에서 이런 기능은 없거든요. 잘 보면 https://github.com/dgkim84/sbt-tutorials/blob/master/scrapper/project/Build.scala#L2 에서 Keys._ 를 static import 합니다.

organization 을 예로 들면 https://github.com/sbt/sbt/blob/0.13/main/src/main/scala/sbt/Keys.scala#L210 이는 Keys.organization 이 선언되어있고 이 인스턴스에서 := 오퍼레이터를 호출하고 실제로는 반환값이 Seq 의 한 엘레멘트로 들어가는겁니다.

필요한 라이브러리는 이런식으로 사용하면 됩니다.

이 예제는 멀티 모듈을 설명함으로

root / common / server / client 모듈 선언


dependsOn 메서드는 모듈간 참조라고 보시면 되고
settings 메서드는 SettingKey 정보를 넣습니다.

defaultSettings: _*
위의 코드처럼 이상한게 있는데 이건 아래 예제보면 이해가 되실꺼예요.

scala> def sum(values: Int*) = values.sum
scala> sum(Seq(1, 2, 3): _*)
res6: Int = 6

발로 설명했는데 이해해주세요;;;; 제가 갈 시간이 되서.

blueiur

unread,
May 12, 2013, 7:05:15 AM5/12/13
to scala...@googlegroups.com

좋은 정보 감사합니다!  심플하지 않은 cbt군요 :)

2013. 5. 12. 오후 6:11에 "Daegeun Kim" <dgk...@gmail.com>님이 작성:
--
Google 그룹스 '라 스칼라 코딩단' 그룹에 가입했으므로 본 메일이 전송되었습니다.
이 그룹에서 탈퇴하고 더 이상 이메일을 받지 않으려면 scala-korea...@googlegroups.com에 이메일을 보내세요.
이 그룹에 게시하려면 scala...@googlegroups.com(으)로 이메일을 보내세요.
웹에서 이 토론을 보려면 https://groups.google.com/d/msg/scala-korea/-/DkDiZs6VJVcJ을(를)를 방문하세요.
더 많은 옵션을 보려면 https://groups.google.com/groups/opt_out을(를) 방문하세요.
 
 

딤딤이

unread,
May 12, 2013, 9:19:29 PM5/12/13
to scala...@googlegroups.com
좋은 정보 감사합니다. ^^


2013년 5월 12일 오후 8:05, blueiur <blu...@gmail.com>님의 말:

Dongwook Lee

unread,
May 13, 2013, 3:56:30 AM5/13/13
to 한국 스칼라 사용자 모임
좋은 발표였습니다. 

존경스럽네요 :)

2013/5/12 blueiur <blu...@gmail.com>

Seungwoo Lee

unread,
May 13, 2013, 3:59:45 AM5/13/13
to scala...@googlegroups.com
아주 짧게 보충한다고 하시고는!!!!
자세한 설명 감사드립니다. sbt 좋아요!!

2013년 5월 13일 월요일에 Dongwook Lee님이 작성:
--
Reply all
Reply to author
Forward
0 new messages