Giter8는 scaffolding 용 sbt 플러그인도 제공하고 있습니다.
아래내용을 project/scaffold.sbt
파일에 적용:
addSbtPlugin("org.foundweekends.giter8" % "sbt-giter8-scaffold" % "0.16.2")
이제 sbt 쉘에서 g8Scaffold
명령을 사용할 수있게 되었습니다.
또한 탭 완성을 사용하여 사용 가능한 템플릿을 확인 해볼 수있습니다.
> g8Scaffold <TAB>
controller global model
템플릿 마찬가지로 scaffold 처리에 필요한 필드는 순서대로 프롬프트됩니다 :
> g8Scaffold controller
className [Application]:
g8 런타임은 GitHub 프로젝트가 있을 때, src/main/scaffolds
이하의 scaffold 를 찾습니다.
src/main/scaffolds
안의 각 디렉토리는 각개의 scaffold 로서, 디렉토리명에 따라,
sbt 쉘에서 엑세스 가능합니다. 일반적으로 템플릿과 마찬가지로, scaffold 디렉토리에, default.properties
파일을 두고
필드값을 정의하는것이 가능합니다. 여기에서도 name
은 특별한 필드명으로서,
혹시 name
필드가 있다면, scaffold 는 name
을 기반으로 디렉토리가 생성되고, 그 아래에, scaffold 의 소스 디렉토리를
복제하는 방식으로 하위디렉토리 구조가 형성됩니다.
템플릿으로 사용된 scaffold는 <project_root>/.g8
에 저장됩니다.
$ ls sample/.g8
total 0
drwxr-xr-x 5 jtournay staff 170B Aug 6 03:21 .
drwxr-xr-x 11 jtournay staff 374B Aug 6 05:29 ..
drwxr-xr-x 4 jtournay staff 136B Aug 6 03:21 controller
drwxr-xr-x 4 jtournay staff 136B Aug 6 03:21 global
drwxr-xr-x 4 jtournay staff 136B Aug 6 03:21 model
이를 이용하여 임의의 sbt 프로젝트가있을 때 .g8디렉토리를 만들기위한 자신의 scaffold를 만드는 것도 가능합니다.