2013-08-25 13 views
5

Supponiamo di creare un nuovo progetto leiningen e di modificare il file project.clj in modo che assomigli al seguente.Come accedere alla mappa del progetto da un plug-in di 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"}) 

La mia domanda è, come faccio ad accedere al: chiave webmaster nella mappa del progetto per l'utilizzo in un plugin leningen che sto scrivendo?

+0

Accesso dove? Durante la compilazione (se sì, quale fase)? – noahlz

+0

@noahlz No, per un plugin leiningen sto scrivendo. –

+4

Viene passato come parametro alla funzione plugin, alla quale è possibile accedere come qualsiasi altra mappa. Guarda questo esempio: https://github.com/noahlz/lein-hello/blob/master/src/leiningen/hello.clj – noahlz

risposta

4

Quando si scrive un plug-in, il primo parametro passato alla funzione di plug-in è la mappa del progetto. È una mappa persistente standard di Clojure, quindi puoi accedervi come qualsiasi altra mappa, ad esempio

(defn my-plugin[project] 
    (println (:webmaster project))) 
Problemi correlati