User Tools

Site Tools


Sidebar

  • Learn about Wiki
  • Lectures
  • Study
  • Tips
    • 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)