2013-08-25 5 views
5

私は新しいleiningenプロジェクトを作成し、project.cljファイルを編集して次のように見えるとしましょう。ウェブマスターキーをプロジェクトマップで使用するために私が書いているleningenプラグインで:leiningenプラグインからプロジェクトマップにアクセスするにはどうすればよいですか?

(defproject foobar "0.1.0-SNAPSHOT" 
    :dependencies [[org.clojure/clojure "1.5.1"] 
       ... 
       [clj-webmaster-tools "0.1.0"]] 
    :plugins [[lein-ring "0.8.6"] 
      [lein-webmaster-tools "0.1.0"] 
    :webmaster {:sitemap "http://www.foobar.com/sitemap-index.xml" :robots "http://www.foobar.com/robots.txt"}) 

私の質問は、私がアクセスしないか、でしょうか?

+0

どこにアクセスしますか?ビルド中(もしそうなら、どの段階)? – noahlz

+0

@noahlzいいえ、私は書いているleiningenのプラグインです。 –

+4

これはプラグイン関数のパラメータとして渡され、他のマップと同様にアクセスできます。この例を見てください:https://github.com/noahlz/lein-hello/blob/master/src/leiningen/hello.clj – noahlz

答えて

4

プラグインを記述するとき、プラグイン関数に渡される最初のパラメータはプロジェクトマップです。これは標準のClojure永続マップなので、他のマップと同様にアクセスできます。つまり、

(defn my-plugin[project] 
    (println (:webmaster project))) 
関連する問題