In questo articolo riassumo un po’ di informazioni sulla corretta impostazione di un progetto Groovy on Grails che integra una base dati Oracle, utilizzando la IDE IntelliJ IDEA di JetBrains. Con poco sforzo si può adattare ad altri tipi di DBMS.
Sommario
Determinare la versione da linea di comando
Mi sono accorto oggi che mentre inizializzavo i miei progetti Groovy on Grails con la versione 2.3.11 (che è quella che mi ha richiesto il Cliente), in realtà quando eseguivo il comando grails
veniva impiegata la versione 4.0.5. L’output era il seguente:
$ grails -version Grails version: 4.0.5
Ho in realtà a disposizione diverse versioni:
$ ll ~/.sdkman/candidates/grails drwxr-xr-x 8 marcob marcob 4096 gen 8 11:24 ./ drwxr-xr-x 6 marcob marcob 4096 ago 13 2019 ../ drwxr-xr-x 13 marcob marcob 4096 apr 29 2013 2.1.5/ drwxr-xr-x 13 marcob marcob 4096 giu 21 2013 2.2.3/ drwxr-xr-x 12 marcob marcob 4096 gen 8 11:23 2.3.11/ drwxr-xr-x 7 marcob marcob 4096 apr 17 2018 3.2.13/ drwxr-xr-x 7 marcob marcob 4096 lug 11 2019 4.0.0/ drwxr-xr-x 7 marcob marcob 4096 ott 25 20:07 4.0.5/ lrwxrwxrwx 1 marcob marcob 7 gen 8 11:24 current -> 4.0.5/
È sufficiente pertanto modificare il puntamento:
$ unlink ~/.sdkman/candidates/grails/current $ ln -s ~/.sdkman/candidates/grails/2.3.11 current
A questo punto la versione era quella desiderata:
$ grails -version Grails version: 2.3.11
Oracle driver non trovato
La compilazione si arrestava dando questo errore
ClassNotFoundException: oracle.jdbc.driver.OracleDriver
Il driver Oracle dev’essere infatti disponibile nella directory del progetto.
$ echo $ORACLE_HOME /usr/lib/oracle/12.2/client64 $ cd <PROJECT_HOME>/lib $ cp $ORACLE_HOME/lib/ojdbc8.jar .
È forse più economico linkare il file invece di copiarlo:
$ ln -s $ORACLE_HOME/lib/ojdbc8.jar
Poi occorre aggiungere il path del client anche alle variabili di ambiente; il modo più robusto per farlo è modificare il file ~/.bashrc
$ nano ~/.bashrc ... export ORACLE_HOME=/usr/lib/oracle/12.2/client64 export PATH=$PATH:$ORACLE_HOME/lib ...
Occorre poi rileggere il file per poter caricare le variabili
$ source ~/.bashrc
A questo punto la mia IDE (Intellij IDEA) compila che è una meraviglia.
Commenti recenti