Leiningen Clojure Building Tool

lein help可以获得一个任务列表,同时lein help task可以获取任务的详细信息。 

➜  ~  lein help
Leiningen is a tool for working with Clojure projects.

Several tasks are available:
check               Check syntax and warn on reflection.
classpath           Write the classpath of the current project to output-file.
clean               Remove all files from paths in project's clean-targets.
compile             Compile Clojure source into .class files.
deploy              Deploy jar and pom to remote repository.
deps                Show details about dependencies.
do                  Higher-order task to perform other tasks in succession.
help                Display a list of tasks or help for a given task or subtask.
install             Install current project to the local repository.
jar                 Package up all the project's files into a jar file.
javac               Compile Java source files.
new                 Generate scaffolding for a new project based on a template.
plugin              DEPRECATED. Please use the :user profile instead.
pom                 Write a pom.xml file to disk for Maven interoperability.
repl                Start a repl session either with the current project or standalone.
retest              Run only the test namespaces which failed last time around.
run                 Run the project's -main function.
search              Search remote maven repositories for matching jars.
show-profiles       List all available profiles or display one if given an argument.
test                Run the project's tests.
trampoline          Run a task without nesting the project's JVM inside Leiningen's.
uberjar             Package up the project files and all dependencies into a jar file.
update-in           Perform arbitrary transformations on your project map.
upgrade             Upgrade Leiningen to specified version or latest stable.
version             Print version for Leiningen and the current JVM.
with-profile        Apply the given task with the profile(s) specified.

Run `lein help $TASK` for details.

Global Options:
  -o             Run a task offline.
  -U             Run a task after forcing update of snapshots.
  -h, --help     Print this help.
  -v, --version  Print Leiningen's version.


创建一个项目 clojure-project:

lein new clojure-project

默认模板中包含项目的README,一个包含代码的src/目录, test/目录,以及一个向Leiningen描述项目的project.clj文件。 src/clojure-project/core.clj文件对应clojure-project.core命名空间。


默认project.clj如下所示  主要作为项目描述信息使用 有点儿像nodeJS的package.json

(defproject clojure-project "0.1.0-SNAPSHOT"
  :description "FIXME: write description"
  :url "http://example.com/FIXME"
  :license {:name "Eclipse Public License"
            :url "http://www.eclipse.org/legal/epl-v10.html"}
  :dependencies [[org.clojure/clojure "1.5.1"]]
  :main ^:skip-aot clojure-project.core
  :target-path "target/%s"
  :profiles {:uberjar {:aot :all}})


Jar文件是一种包含了JVM元数据的zip文件  通包含.class文件  .java .clj源文件以及其他配置文件


lein repl 运行启动一个Clojure REPL  

REPL是一种你可以输入任意代码运行在项目上下文里的交互式提示。

clojure-project.core=> (require 'clojure-project.core)
nil
clojure-project.core=> (clojure-project.core/-main)
Hello, World!
nil
clojure-project.core=>
clojure-project.core=> (require '[clj-http.client :as http])
nil
clojure-project.core=> (def response (http/get "http://leiningen.org"))
#'clojure-project.core/response
clojure-project.core=> (keys response)
(:orig-content-encoding :trace-redirects :request-time :status :headers :body)

也可以使用lein run 命令运行代码而不用进入交互模式


使用lein 查看帮助信息  非常清晰 比Clojure自带的shell好使多了

clojure-project.core=> (doc map)
-------------------------
clojure.core/map
([f coll] [f c1 c2] [f c1 c2 c3] [f c1 c2 c3 & colls])
  Returns a lazy sequence consisting of the result of applying f to the
  set of first items of each coll, followed by applying f to the set
  of second items in each coll, until any one of the colls is
  exhausted.  Any remaining items in other colls are ignored. Function
  f should accept number-of-colls arguments.
nil


http://leiningen.org/



你可能感兴趣的:(clojure,building)