2015-12-15 59 views
3

说我有一个香草project.clj像我可以在REPL的Lein项目中查找内容吗?

(defproject myservice "0.1.0-SNAPSHOT" 
    :description "FIXME: write description" 
    :url "http://example.com/FIXME" 
    :mailing-list {:name "[email protected]" :post "[email protected]"} 
    :license {:name "Eclipse Public License" 
      :url "http://www.eclipse.org/legal/epl-v10.html"} 

    :dependencies [[org.clojure/clojure "1.6.0"] 
       [ring/ring-core "1.4.0"] 
       [ring/ring-jetty-adapter "1.4.0"] 
       [compojure "1.4.0"] 
       [ring/ring-defaults "0.1.5"] 
       [org.clojure/tools.logging "0.3.1"] 
       [clj-http "2.0.0"]] 

    :plugins [[lein-ring "0.9.7"]] 

    :ring {:handler myservice.core/standalone-app 
     :port 3000} 
    :profiles { 
      :uberjar {:ring {:handler myservice.core/app}}} 
) 

lein repl,我可以从project.clj查找值?怎么样?当然,我的盲人黑客没有工作?

user=> (:mailing-list project) 
CompilerException java.lang.RuntimeException: Unable to resolve symbol: project in this context, compiling:(/private/var/folders/1g/fnytl2x93sx6hp2f1rsf4h1r5xtqv_/T/form-init6671981825845237047.clj:1:1) 

下面的问题是我可以使用project.clj中的项目映射吗?就像我想拉取邮件列表一样:命名并替换为:deb:maintainer?

:deb 
    {:toDir "target" 
    :package "mysevice" 
    :maintainer {:name "Meeples", :email "[email protected]"} 
    ... 
    } 

我敢肯定,你可以告诉我是那种-的新本,但project.clj仅仅是可执行的Clojure,不是吗?如果我知道项目地图的名称,我应该可以查询它,对吧?

+1

这不是一个答案,但[此线程(http://stackoverflow.com/questions/16270805/how-to - 获取当前版本的clojure-project-in-the-repl)提供了一些适用于您的用例的解决方案,比如sl the project.clj或“def-out”你感兴趣的部分。 – acron

+0

嗯。这不是那么简单,是吗?我想我应该问一个不同的问题。我真正想做的是从邮件列表映射中提取一个值,并将其用作:deb::maintainer中的:email值。 –

+0

哦,在这种情况下,你可以'确定'的东西 - 让我做一个正确的答案,2秒。 – acron

回答

1

可以def数据,你通常会和它们包括使用~

(def mailing-list {:name "[email protected]" :post "[email protected]"}) 

(defproject myservice "0.1.0-SNAPSHOT" 
    :description "FIXME: write description" 
    :url "http://example.com/FIXME" 
    :mailing-list ~mailing-list 
    :license {:name "Eclipse Public License" 
      :url "http://www.eclipse.org/legal/epl-v10.html"} 

    :dependencies [[org.clojure/clojure "1.6.0"] 
       [ring/ring-core "1.4.0"] 
       [ring/ring-jetty-adapter "1.4.0"] 
       [compojure "1.4.0"] 
       [ring/ring-defaults "0.1.5"] 
       [org.clojure/tools.logging "0.3.1"] 
       [clj-http "2.0.0"]] 

    :plugins [[lein-ring "0.9.7"]] 

    :ring {:handler myservice.core/standalone-app 
     :port 3000} 
    :profiles { 
      :uberjar {:ring {:handler myservice.core/app}}} 
    :deb { 
     :toDir "target" 
     :package "mysevice" 
     :maintainer {:name "Meeples", :email (:name ~mailing-list)}}) 
+0

啊。但是当然。 –

相关问题