Boot : It's not a build tool - it's build tooling.

2015.11.23

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
  • https://github.com/adzerk-oss/bootlaces
  • 실행 가능한 파일로 만들어주는 tasks
  • https://github.com/adzerk-oss/boot-jar2bin
  • lein-ancient처럼 dependencies 버전 체크.
  • https://github.com/martinklepsch/boot-deps
  • 쉘스크립트 실행
  • https://github.com/danielsz/boot-shell
  • https://github.com/mathias/boot-restart
  • notification기능
  • https://github.com/jeluard/boot-notify

Example

사실 이 글을 작성할때, 여러 예제를 만들어 넣을까 했는데… 다음 링크가 잘 나타난것 같다.

REF.

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/