說我有一個香草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,不是嗎?如果我知道項目地圖的名稱,我應該可以查詢它,對吧?
這不是一個答案,但[此線程(http://stackoverflow.com/questions/16270805/how-to - 獲取當前版本的clojure-project-in-the-repl)提供了一些適用於您的用例的解決方案,比如sl the project.clj或「def-out」你感興趣的部分。 – acron
嗯。這不是那麼簡單,是嗎?我想我應該問一個不同的問題。我真正想做的是從郵件列表映射中提取一個值,並將其用作:deb::maintainer中的:email值。 –
哦,在這種情況下,你可以'確定'的東西 - 讓我做一個正確的答案,2秒。 – acron