Boot
It's not a build tool - it's build tooling.
- 홈페이지: http://boot-clj.com/
- 소스코드: https://github.com/boot-clj/boot
- boot는 adzerk라는 회사에서 만든 빌드 툴링(build tooling)이다.
- adzerk는 ad serviing infrastructure를 제공해주는 회사이다.
- stackexchange, bittorrent, reddit등이 이 회사의 서비스를 이용하고 있다.
- boot의 빌드 프로세스는, Tasks(Boot's modular building blocks.)단위로 이루어 진다.
- Tasks는 task middleware이다.
- task middleware는 task handler로 제어한다.
- 이 task handler는 Filesets을 조작한다.
- JVM에 관한 의존성관리는 Pods에 의해 제어된다.
- clean task가 없다. (Artifacts can never be stale)
- 의도하는 바는 알겠지만, clean에 대해서도 우아하게 처리할 수 있는 방안이 필요하다 라는 것이 내 개인적인 견해이다.
leiningen과 비교해서.
- leiningen은 defproject하나로 관리되어, (물론 여러 트릭으로 우회할 순 있지만), 복잡한 상황에 대처하기에 부적합한 경우도 있다.
- 또한, 현재 leiningen은 lein X auto문제를 안고있다.
Community Tasks
- https://github.com/boot-clj/boot/wiki/Community-Tasks
- Adzerk's boot configurations for Clojure libraries
- 실행 가능한 파일로 만들어주는 tasks
- lein-ancient처럼 dependencies 버전 체크.
- 쉘스크립트 실행
- notification기능
Example
사실 이 글을 작성할때, 여러 예제를 만들어 넣을까 했는데... 다음 링크가 잘 나타난것 같다.
REF.
- Boot: Build tooling for Clojure(script) by mklappstuhl
- Boot + Middleman: The ClojureScript development environment of my dreams
- Why Boot is Relevant For The Clojure Ecosystem
- ClojuTRE - Build tooling with Boot
- Clojurescript application template using Boot
Let's try piling up some other kinds of furniture and see how we feel about it, shall we?
I hope you have fun playing with it and remember, "Lisp Can Do It!"
- http://adzerk.com/blog/2014/11/clojurescript-builds-rebooted/