2015-06-10 22 views
13

Mi chiedo come esternalizzare tutti i driver jdbc per le mie applicazioni Spring Boot, non vorrei inserire i driver jdbc nel mio barattolo di grasso una volta che l'applicazione è stata creata.Cartella libreria esterna per Spring Boot

C'è un modo per impostare un parametro java vm, informando quale cartella esterna dovrebbe essere inclusa nell'esecuzione jar? O forse esiste qualche tipo di proprietà primaverile per questo.

Ad esempio: java -DLib = file: \\ C: \ Drivers -jar sample.jar

Grazie

risposta

6

Vedere la documentazione relativa PropertiesLauncher:

Sembra che è possibile utilizzare la proprietà loader.path per definire un percorso di cartella lib, che contiene vasi per caricare - in realtà cartella lib (in linea con il barattolo) è il percorso predefinito:

loader.path (se vuoto), il valore predefinito è lib (che indica una directory locale o un nidificato se in esecuzione da un archivio)

+0

Non riesco ancora a farlo funzionare con loader.path, sembra ignorare tutto ciò che ho inserito. Potresti aggiungere un esempio, per favore? Grazie. –

+1

Non importa, si scopre che è necessario costruire il vaso con il layout ZIP per il loader.path per funzionare. –

-1

non che è ciò che il classpath è per? Finché i jar del driver jdbc si trovano sul classpath, questo dovrebbe funzionare. Qualcosa del genere:

java -classpath /path/to/driver/jar -jar application.jar 

È inoltre possibile impostare la variabile di ambiente CLASSPATH per lo stesso.

+3

Non con spring-boot e il suo formato jar eseguibile, e inoltre tradizionalmente non è possibile combinare le opzioni jar e classpath - http://stackoverflow.com/questions/15930782/call-java-jar-myfile-jar-with-additional-classpath-option –

+0

java cmd ignora le opzioni "classpath" con l'opzione jar. – xyzlast