Come carico automaticamente un jar di database in Groovy senza usare l'opzione -cp?
Domanda
Voglio semplificare la mia esecuzione di uno script Groovy che effettua chiamate a un database Oracle. Come faccio ad aggiungere il vaso ojdbc al percorso di classe predefinito in modo da poter eseguire:
groovy RunScript.groovy
anziché:
groovy -cp ojdbc5.jar RunScript.groovy
Soluzione
Riassunto da Ricette Groovy , di Scott Davis, Incluso automaticamente i JAR nella directory ./groovy/lib :
- Crea
.groovy / lib
nella tua directory di accesso -
Rimuovi il commento dalla riga seguente in $ {GROOVY_HOME} /conf/groovy-starter.conf
carica! {user.home} /. groovy / lib / *. jar
-
Copia i vasetti che vuoi includere in
.groovy/lib
Sembra che per Groovy 1.5 o versioni successive si ottenga questo per impostazione predefinita (non è necessario modificare la configurazione), è sufficiente rilasciare i vasetti nella directory / lib.
Altri suggerimenti
Ci sono alcuni modi per farlo. Puoi aggiungere il vaso alla variabile CLASSPATH del tuo sistema. Puoi creare una directory chiamata .groovy / lib nella tua home directory e mettere il vaso lì dentro. Verrà aggiunto automaticamente al tuo percorso di classe in fase di esecuzione. Oppure puoi farlo nel codice:
this.class.classLoader.rootLoader.addURL(new URL("file:///path to file"))
groovy
è solo uno script wrapper per il JAR Groovy che configura il percorso di classe Java. Potresti modificare quello script per aggiungere il percorso al tuo JAR, suppongo.
Potresti aggiungere il seguente shebang alla prima riga del tuo script Groovy :
#!/usr/bin/env groovy -cp ojdbc5.jar
Quindi, contrassegnare l'eseguibile dello script:
chmod u+x RunScript.groovy
Ora, l'esecuzione dello script da sola imposterà automaticamente il percorso di classe.
./RunScript.groovy