Pregunta

Acabo de instalar criterio, y quiero poder usarlo de la replica y de otros proyectos. ¿Cómo extiendo el Java Classpath para poder usar la biblioteca instalada desde cualquier lugar?

Agradecería las respuestas que pueden funcionar fácilmente en todos los proyectos en los que trabajo en el futuro. Estoy usando Leiningen, y supongo que haría esto cuando corres lein install, pero o estoy haciendo algo mal o eso no es suficiente.

¿Fue útil?

Solución

Tienes que aprender Maven básico (Lein usa Maven debajo del capó) y Java Classpath Mechanics. Para una descripción general muy breve:

Maven almacena dependencias en un directorio oculto, .m2, en su carpeta de inicio. Explore la carpeta y tendrá sentido. Cuando corres lein install Pondrá el frasco en esa carpeta. Intenta encontrar el que instaló. Sin embargo, la mayoría de las dependencias que use estarán en un servidor como Clojars, por lo que no debe necesitar instalarlo manualmente como lo hizo. Por ejemplo, el criterio es aquí.

En su proyecto, debe agregar Criterium como dependencia en Project.Clj. Se verá algo como esto:

(defproject your-project "0.1.5" :description "blah" 
  :dependencies [[org.clojure/clojure "1.2.0"]
                 [org.clojure/clojure-contrib "1.2.0"]
                 [criterium "0.0.1-SNAPSHOT"]
                 ]   
  :dev-dependencies
    [[swank-clojure "1.2.1"]])

Ahora CD en la carpeta raíz de su proyecto y ejecute lein deps. Esto descargará las dependencias en Project.clj, y las colocará automáticamente en .m2 y en la carpeta lib de su proyecto. Para iniciar una replica con la configuración de classpath lein repl

Cada proyecto que usa Criterium deberá agregarlo como una dependencia en su proyecto.clj

Otros consejos

Agradecería las respuestas que pueden funcionar fácilmente en todos los proyectos en los que trabajo en el futuro.

Lamentablemente, esto es imposible en el JVM; No puede modificar el ClassPath en tiempo de ejecución, por lo que debe calcularse por separado para cada proyecto. No existe una clase de clases de todo el sistema, aunque herramientas como Leiningen y CLJR pueden proporcionar algo similar en algunos contextos:

$ lein install swank-clojure 1.3.0-SNAPSHOT

Esto instalará Swank-Clojure en ~/.lein/complementos, lo que lo pondrá a disposición en todos los proyectos de Leiningen como una dependencia de desarrollo y lo pondrá a disposición cuando haga "Lein Repl" fuera del contexto de un proyecto, pero cosas que son dependencias reales de los proyectos deberán entrar en el archivo Project.CLJ de ese proyecto. De lo contrario, sería fácil crear proyectos que funcionen en su máquina pero que no sean repetibles.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top