2011-02-03 12 views
15

Soy nuevo en Clojure pero lo estoy aprendiendo. Me gustaría saber la mejor manera de empaquetar y distribuir un programa Clojure a usuarios finales que no son necesariamente programadores. Sé que en Ruby puedes decirle a los usuarios que descarguen el programa con gem install [program name] y luego ejecuten el comando que ejecuta el programa. ¿Cuál es el equivalente de los programas de Clojure?¿Cómo se distribuye un programa Clojure a los no programadores?

Respuesta

8

Yo uso Leiningen tiene un comando uberjar para hacer archivos jar ejecutables independientes, que los usuarios pueden hacer doble clic. Ver: http://zef.me/2470/building-clojure-projects-with-leiningen

+0

Aunque lein uberjar es ideal para cosas pequeñas, no es factible para proyectos más grandes, especialmente si se incluyen otras bibliotecas de Java de terceros. Los tarros no se pueden (necesariamente) expandir, combinar y volver a sacudir de forma segura. El orden es arbitrario en el caso de conflictos de ruta, los manifiestos pueden ser complicados (o imposibles) para fusionarse apropiadamente, etc. Por supuesto, comience con uberjar pero eventualmente puede salir de él. –

+1

Dependiendo del nivel técnico de sus usuarios, Lein-tar también puede ser apropiado: https://github.com/technomancy/lein-tar aunque no hay nada como la comodidad de un uberjar si funciona para su proyecto. – technomancy

-2

Clojars (http://clojars.org/) es el mayor repositorio de bibliotecas de Clojure que puedes encontrar.

Funciona perfectamente con los proyectos de Leiningen o cualquier otra herramienta de gestión de proyectos basada en Maven.

+1

Clojars no proporciona una instalación/distribución para el mecanismo de los usuarios finales como se pide en la pregunta. – mac

2

Clojars es genial si está distribuyendo una biblioteca, pero no estoy seguro de si esa es la mejor opción para los usuarios finales.

Si ya está usando Maven, creo que la mejor opción es crear un uberjar que contenga todas las clases requeridas. Si desea que sea aún más amigable para el usuario final, puede crear un instalador desde este contenedor usando algo como IzPack. Recuerde que los programas Clojure son programas Java, por lo que todas las opciones de distribución para Java también son válidas para Clojure.

1

lein uberjar funciona muy bien para aplicaciones pequeñas en su mayoría Clojure, pero no escala cuando se utilizan muchas bibliotecas Java, incluidas las licencias necesarias, y otras cosas similares. Si utilizas el plugin Maven Clojure, puedes aprovechar el extenso y aterrador plugin de Maven para construir y la estructura final que posiblemente puedas necesitar.

o usted podría escribir un plugin Leiningen hacer algo similar. No estoy seguro si existe tal cosa.

Cuestiones relacionadas