2011-11-17 16 views
6

Qualcuno ha un'idea che è il modo migliore per creare una propria libreria per groovy.Creazione propria biblioteca groovy

Ho diversi metodi che non voglio copiare e incollare in tutti i miei script groovy.

La soluzione ideale sarebbe quella di farlo da un

import myownmethods 

Come creare il myownmethods.jar biblioteca?

Grazie per qualsiasi risposta e la soluzione

Acclamazioni

risposta

9

Il metodo più semplice è quello di compilare i file groove con groovyc e poi in un pacchetto file jar con jar. Ad esempio:

groovyc -d classes myclasses.groovy 
jar cvf myclasses.jar -C classes . 

Vorrei anche considerare il gradle. Per iniziare, è possibile utilizzare un build.gradle contenente solo:

apply plugin: 'groovy' 

Poi mettere i file sorgente in una sottodirectory chiamata src/main/groovy ed eseguire gradle jar. Costruirà i file sorgente in un file jar in build/libs.

+0

Grazie per le risposte veloci! L'ho provato con il metodo groovyc e alla fine ho ottenuto il mio file jar. L'ho copiato nella dir della lib di groovy dir principale, ma quando apro la groovyConsole e scrivo seguendo: 'import myclasses. * One() // metodo che semplicemente println 1' non sembra funzionare ... non può trova il metodo. Cosa ho fatto di sbagliato? – Booyeoo

+0

Attacca il file jar in '.groovy/lib' nella tua home directory (' System.properties ['user.home'] '). O lanciare groovy con 'groovyConsole -classpath myclasses.jar' – ataylor

+0

Grazie mille! Ho copiato tutte le cartelle possibili ma non ha funzionato. Ho poi capito che potresti aver bisogno di una definizione di classe nel groovy che viene compilata in classe e confezionata nel barattolo. Lavori. Questo non è perfetto ma offre la soluzione necessaria. – Booyeoo

2

Si dovrebbe seguire lo stesso processo che si farebbe per una libreria Java, cioè

  • Creare un progetto per il codice
  • Configura il tuo strumento di creazione preferito (Ant, Maven, ecc.) per costruire un JAR per quel progetto
  • Metti il ​​JAR da qualche parte dove altri progetti possono trovarlo. Se si sta utilizzando uno strumento come Ivy o Maven che esegue la gestione delle dipendenze, è probabile che si desideri distribuirlo in un repository. Altrimenti, è possibile posizionarlo da qualche parte nel controllo sorgente †
  • I progetti che dipendono da questa libreria devono caricarlo dal repository (se si utilizza la gestione delle dipendenze) oppure copiarli nella loro directory lib (se non) †

† so che questo fa schifo, ma non riesco a ricordare come ho usato per gestire le dipendenze senza utilizzare uno strumento di gestione delle dipendenze