2010-05-26 13 views

risposta

22

Utilizzare leiningen e creare un uberjar (jar autonomo contenente tutte le dipendenze) dal progetto.

Come Alex Ott menziona nel commento alla mia risposta, un altro può costruire la tua app è utilizzare Maven + plugin Clojure per Maven. In seguito puoi usare uno strumento come IzPack per generare un programma di installazione o un wrapper eseguibile per il tuo artefatto di vasi. Naturalmente è possibile utilizzare anche leiningen IzPack - non interessa affatto il sistema di compilazione - solo per i file risultanti :-)

Dopo aver trovato l'uberjar ci sono molte opzioni per avvolgerlo in un nativo eseguibile launcher per windows - izpack2exe, jsmooth, jar2exe, executor, etc ...

+3

Io uso Maven con il plugin di assemblaggio per costruire grande vaso con tutti i contenuti. E uso anche maven + izpack-plugin per creare programmi di installazione per le mie applicazioni –

+0

Io uso IzPack da solo, ma ho dimenticato di menzionarlo. Grazie per l'ottimo commento, estenderò la mia risposta. –

+0

Clojuresque (il plugin Clojure per gradle) fornisce anche un'attività uberjar, che crea un jar autonomo per un'applicazione. – kotarak

2

Per espandere la risposta di Bozhidar, leiningen rende super facile generare un jar che pacchi l'app e le sue dipendenze. Esegui lein uberjar dal terminale quando sei all'interno della directory del progetto e creerà un file nome progetto 0.1.0-standalone.jar che può essere eseguito con java -jar dove "nome-progetto" è il nome del tuo progetto. Volete assicurarvi che sia il vostro project.clj che avete impostato: main al vostro file che ha una funzione -main. Anche nel file principale che si desidera inserire (: Gen-class) all'interno della vostra dichiarazione dello spazio dei nomi in questo modo:

(ns project-name.main 
     (: require ...) 
     (:gen-class)) 
Problemi correlati