bloggers bloggers

Jader Jed Francia
Messaggi: 60
Stelle: 0
Data: 20/11/20
Marco Napolitano
Messaggi: 78
Stelle: 0
Data: 12/06/20
Paolo Gambetti
Messaggi: 2
Stelle: 0
Data: 11/11/19
Katia Pazzi
Messaggi: 1
Stelle: 0
Data: 27/06/19
Ezio Lombardi
Messaggi: 11
Stelle: 0
Data: 10/04/18
Chiara Mambretti
Messaggi: 25
Stelle: 0
Data: 27/02/17
Serena Traversi
Messaggi: 3
Stelle: 0
Data: 21/07/16
Francesco Falanga
Messaggi: 8
Stelle: 0
Data: 14/06/16
Antonio Musarra
Messaggi: 2
Stelle: 0
Data: 18/11/13
Simone Celli Marchi
Messaggi: 6
Stelle: 0
Data: 09/07/13
Indietro

Liferay SDK 6.2 con IntelliJ (e build in ANT)

Buongiorno a tutti e ben ritrovati!

Questo è proprio un periodo felice: riesco a scrivere un sacco di non-post (come quello di ieri ma anche come quello che sto scrivendo ora.. :D) che affrontano tematiche che.. Interessano praticamente solo me! ;D

In realtà quello di oggi è un topic che mi da un po' da fare da sempre; ho sempre avuto il pallino di abbandonare Eclipse (o il Liferay Developer Studio) in funzione di una IDE che fosse un po' più robusta, stabile, funzionante, chi-più-ne-ha-più-ne-metta... :D

Scherzi a parte, senza nulla togliere al Liferay Developer Studio 2.2.2 (che ad oggi l'Ing. Napolitano lista ancora nella sua personale top list delle versioni del LDS -di cui è un attento e preciso catalogatore seriale.. :D-), avevo da un po' cominciato a guardare al tema ma senza successo.

L'antefatto...

Poi è successo un fatto.. Nel weekend ho fatto upgrade del sistema operativo senza fare backup (prima volta in 20 anni.. :/).

Beh, Big Sur (ho un mac..) ha un piccolo glitch per cui non viene più impostata correttamente la JAVA_HOME.

Poco male, direte voi, mica tu Jader sei uno che sviluppa.. :D

... Vero!

Però, però, però, c'è un però.. :D

... Questa settimana stavo proprio tenendo un corso guardacaso sulla 6.2 di LR.

E il fatto che non mi setti più la JAVA_HOME (anche se a manazza sembra averla correttamente settata..), il Liferay Developer Studio 2.2.2. NON mi parte più! 

[N.d.J.: Appunto che ho correttamente configurato l'init di Eclipse impostando a manazza l'argomento per la corretta JVM, ma niente. Parte ma si frizza sullo splash screen e sulla selezione del workspace..]

L'esigenza..

Quindi quello che fino a sabato mattina era solo un vezzo, ora è diventato una triste necessità! ;)

Per terminare il corso non ho avuto grossi problemi: ho riesumato il mac che avevo dismesso durante il lockdown in favore del nuovo e quindi il corso è terminato correttamente.

Però ci sono alcuni progetti sui quali abbiamo della maintenance attiva per i quali, purtroppo o per fortuna :), dobbiamo fare manutenzione.

[N.d.J.: Dobbiamo.. Devo: perché né l'Inge, né gli altri colleghi ne vogliono sapere.. :D]

La soluzione

Quindi questa mattina, di buon'ora (come sono solito fare da quando sono in smart working :)), mi sono messo d'impegno per far funzionare il LRSDK62 su IntelliJ.. 

Spoiler: la soluzione che segue è ovvia, lo so, talmente ovvia che i più, tra voi, sicuramente la bolleranno come "minchiata" :). La scrivo comunque, però, perché un giorno mi servirà e allora non dovrò rifare tutto il giro che ho fatto questa mattina! :)

Ragionandoci un po' su ho avuto un'intuizione: il DevStudio non fa altro che gestire dinamicamente il classpath e poi via ANT eseguire dei task.

Se sistemo a manazza il classpath e faccio in modo che ANT buildi, vinco facile.. :)

Quindi:

  • ho aperto in IntelliJ LE SINGOLE PORTLET contenute all'interno del SDK;
    • Quindi i progetti contenuti nelle varie folder del SDK (portlets, layouttpl, hooks, etc..);
  • ho configurato il classpath (more on this later...) delle singole portlet impostando:
    • il classpath globale con tutte le dipendenze per far compilare i miei portlet;
    • il classpath dei singoli moduli puntando alla loro WEB-INF/lib interna (quando necessario);
  • ho configurato ANT (la versione corretta) e l'ho fatto funzionare (solo da command line, sorry...)

Dettagli tecnici

Questo è lo screenshot di come ho configurato il classpath globale:

Come sicuramente avrete notato bisogna aggiungere (per praticità / velocità):

  • tutti i JAR contenuti nella lib del Tomcat bundle Liferay;
  • tutti i JAR contenuti nella lib/ext del Tomcat bundle Liferay;
  • questi singoli JAR, presi dalla <tomcat home>/webapps/ROOT/WEB-INF/lib:
    • commons-logging.jar
    • jstl-api.jar
    • jstl-impl.jar
    • log4j.jar
    • util-bridges.jar
    • util-java.jar
    • util-taglib.jar

Fatto questo gli artefatti vi compileranno già; rimane da sistemare ANT.

Per farlo funzionare, mi sono scaricato la versione apache-ant-1.9.15 e, a mano, lancio i singoli task da dentro alle folder dei singoli plugin. Questo approccio funziona: compila e fa deploy correttamente!

Conclusioni

Sicuramente starete dicendo peste e corna di questo post ;), mi sembra quasi di sentirvi! :)

Però dovete ammettere che di articoli che spiegano questa cosa non ce ne sono proprio su internet... Forse perché, come dicevo all'inizio, forse è un problema soltanto mio.. :D

Aggiungo che tutto quanto sopra funziona perché io ho già un SDK che è correttamente configurato: intendo che al suo interno è già presente, parametrizzato correttamente dal Liferay Developer Studio, il file build.jed.properties (che è il file che permette ad ANT di funzionare correttamente).

Se così non fosse, nel senso che state iniziando un progetto nuovo sulla 6.2, beh, il mio consiglio è FERMARVI e cominciare il vostro nuovo  progetto su LR7.x perché, e sono serio, la vostra vita sarà molto più semplice e divertente! ;)

In ultima analisi, è ovvio che questo paradigma (LR62 + IntelliJ) è un palliativo: quello che si perde nel non usare il Liferay Developer Studio è tanta roba (snippet, pannellini di configurazione, wizard.. Tanta roba davvero!).

È vero anche però, per contro, che il tempo che guadagnerete lavorando con questa configurazione sarà mostruosamente più alto del tempo che Eclipse -io parlo per me, magari la vostra esperienza è diversa..- vi fa perdere di solito.. :)

Detto questo, sperando di avervi aiutato a migliorare un po' la vostra performance lavorativa (o aver risolto il problema che BUG Sur ha introdotto.. :)), vi lascio e vi do appuntamento alla prossima! ;)

Divertitevi e buon IntelliJ a tutti (anche con LR62)!! ;)

Successivo
Commenti
Nessun commento. Vuoi essere il primo.