User Tools

Site Tools


lecture:leiningen:srcs

소스 분석

프로젝트 구조

.
├── bin
├── doc
├── lein-pprint
│   ├── project.clj
│   └── src
│       └── leiningen
│           └── pprint.clj
├── leiningen-core
│   ├── dev-resources
│   │   ├── p1.clj
│   │   ├── p2.clj
│   │   └── p3.clj
│   ├── project.clj
│   ├── resources
│   ├── src
│   │   └── leiningen
│   │       └── core
│   │           ├── classpath.clj
│   │           ├── eval.clj
│   │           ├── main.clj
│   │           ├── project.clj
│   │           ├── ssl.clj
│   │           ├── user.clj
│   │           └── utils.clj
│   ├── target
│   │   ├── classes
│   │   └── stale
│   └── test
│       └── leiningen
│           ├── bluuugh.clj
│           ├── core
│           │   └── test
│           │       ├── classpath.clj
│           │       ├── eval.clj
│           │       ├── main.clj
│           │       └── project.clj
│           ├── one_or_two.clj
│           └── var_args.clj
├── project.clj
├── resources
│   └── leiningen
│       └── help
├── sample.project.clj
├── src
│   └── leiningen
│       ├── check.clj
│       ├── classpath.clj
│       ├── clean.clj
│       ├── compile.clj
│       ├── deploy.clj
│       ├── deps.clj
│       ├── do.clj
│       ├── help.clj
│       ├── install.clj
│       ├── jar.clj
│       ├── javac.clj
│       ├── plugin.clj
│       ├── pom.clj
│       ├── repl.clj
│       ├── retest.clj
│       ├── run.clj
│       ├── search.clj
│       ├── show_profiles.clj
│       ├── test.clj
│       ├── trampoline.clj
│       ├── uberjar.clj
│       ├── upgrade.clj
│       ├── version.clj
│       └── with_profile.clj
├── target
│   └── stale
├── test
│   └── leiningen
│       └── test
│           ├── compile.clj
│           ├── deploy.clj
│           ├── deps.clj
│           ├── do.clj
│           ├── help.clj
│           ├── helper.clj
│           ├── install.clj
│           ├── jar.clj
│           ├── javac.clj
│           ├── new.clj
│           ├── pom.clj
│           ├── repl.clj
│           ├── run.clj
│           ├── search.clj
│           ├── test.clj
│           └── uberjar.clj
└── test_projects
    ├── native
    │   └── project.clj
    ├── overlapped-sourcepaths
    │   ├── project.clj
    │   └── src
    ├── sample
    │   ├── checkouts
    │   │   └── sample2
    │   │       ├── project.clj
    │   │       ├── src
    │   │       │   └── sample2
    │   │       │       ├── alt.clj
    │   │       │       └── core.clj
    │   │       └── test
    │   │           └── sample2
    │   │               └── core_test.clj
    │   ├── project.clj
    │   ├── src
    │   │   └── nom
    │   │       └── nom
    │   │           └── nom.clj
    │   └── test
    │       └── test_nom_nom_nom.clj
    ├── sample_failing
    │   ├── project.clj
    │   └── src
    │       └── nom
    │           └── nom
    │               └── nom.clj
    ├── sample_no_aot
    │   ├── project.clj
    │   ├── src
    │   │   └── nom
    │   │       └── nom
    │   │           └── nom.clj
    │   └── test
    │       └── selectors.clj
    └── tricky-name
        ├── project.clj
        └── src
            └── org
                └── domain
                    └── tricky_name
                        ├── brunch.clj
                        ├── core.clj
                        └── munch.clj

58 directories, 80 files

leiningen-core 폴더가 Leiningen의 엔진에 해당한다.

src 폴더는 Leiningen의 작업(Task)별로 .clj 파일이 들어있다. 각 파일들은 각각 Leiningen은 작업(Task)를 수행한다.(lein의 옵션들과 일대일 대칭이다.)

src/leiningen/new 폴더는 템플릿 소스들이 있다.

  • app.clj : app을 만드는 템플릿
  • default.clj : 기본 템플릿
  • plugin.clj : 플러그인을 만드는 템플릿
  • templete.clj : 템플릿을 만드는 템플릿

Leiningen이 의존하는 다른 프로젝트들

leiningen-core/project.clj 파일을 보면 Leiningen 엔진이 의존하는 다른 프로젝트들을 알 수 있는데, 다음과 같다.

  • bultitude : classpath 상에서 이름공간을 찾아내는 라이브러리
  • classlojure : classpath 별로 클래스 로더를 만든다.
  • useful : 여러가지 유용한 유틸리티들.
  • robert/hooke : Leiningen의 훅킹을 지원하는 라이브러리
  • com.cemerick/pomegranate : Maven 레포지토리 관리 라이브러리 Aether의 클로져 래퍼.
  • org.tcrawley/dynapath : 클래스 로더를 위한 프로토콜 제공.
lecture/leiningen/srcs.txt · Last modified: 2019/02/04 14:26 (external edit)