tutorial lein instalar code bridal clojure leiningen

clojure - instalar - Complemento de Leiningen a nivel de proyecto



instalar clojure (2)

La respuesta breve es "no", pero todavía es bastante fácil definir una tarea a nivel de proyecto: Agregar :eval-in-leiningen true a su definición de defproject y mover la definición de la tarea a src/leiningen/foo.clj .

En las versiones 1.xx de Leiningen, pude definir una tarea lein foo válida solo en un proyecto individual al poner lo siguiente en el proyecto de project.clj :

(defproject tester "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.4.0"]]) ;; Create a task, "foo" (ns leiningen.foo (:require (leiningen [uberjar :as uberjar]))) (defn foo [project & args] (println "Do something here first, then make the uberjar.") (uberjar/uberjar project))

Puede obtener un poco más de información sobre esto aquí:

http://nakkaya.com/2010/02/25/writing-leiningen-plugins-101/

En 2.xx, ya no puedo hacer esto (es decir, me pongo ''foo'' is not a task. Parece demasiado, demasiado para mí tener que comenzar un proyecto separado para esta tarea. ¿Todavía es posible? para definir una tarea dentro de project.clj para leiningen 2.xx?


Puede hacerlo utilizando .lein-classpath para apuntar a un directorio fuera de src contenga las tareas. Por ejemplo, si tiene el complemento en src/leiningen/foo.clj , puede hacerlo en la raíz del proyecto:

$ mkdir tasks $ mv src/leiningen tasks/ $ echo tasks > .lein-classpath

La razón por la que puede querer evitar :eval-in-leiningen true es que tiene algunos comportamientos divertidos cuando intenta hacer compilación AOT para una clase main . Específicamente, obtienes:

Compilation failed: java.io.IOException: No such file or directory, compiling:(testproj/core.clj:1)

Al intentar compilar / ejecutar incluso un ejemplo de prueba simple. Mas información en:

https://github.com/technomancy/leiningen/issues/769