Come anticipato, il linguaggio Java è molto usato nel backend delle applicazioni Web. Con esso molte tecnologie ormai considerate cardine dello sviluppo enterprise, parliamo di Spring, lombok, tomcat, etc. Vediamo come.
Tomcat e vari server
Un supporto a tomcat è previsto dall'estensione redhat.vscode-community-server-connector
:
In realtà il supporto si estende a vari server (Karaf, Liberty, Glassfish, Wildfly etc.), comprende download, war deploy, avvio e stop dei server.
Creazione e download di un server
Una volta installato il server dovrebbe apparire nel file explorer in basso la scritta "Server", espandendo il menù dovrebbe essere mostrato il Community Server Connector:
Cliccando sull'icona in alto a destra è possibile aggiungere un nuovo server, verrà chiesto tramite pop-up se scaricare il server o se utilizzare un'installazione locale.
A questo punto si supponga di voler scaricare il server da zero, il pop-up chiederà quale tipologia di server scaricare:
Una volta scelto il server viene quindi richiesto di scaricare la licenza:
e quindi di accettarla:
A questo punto si può notare un nuovo file aperto nell'editor in attesa di essere salvato, è la licenza scaricata dall'estensione. La scheda può essere chiusa senza salvataggio del file e senza alcun problema.
Cartella dei server
I server vengono scaricati nel percorso .rsp/redhat-community-server-connector/runtimes/installations/
a partire dalla cartella del proprio utente.
Importazione di un server locale
Se si è già in possesso di un server si può invece specificare la sua posizione per utilizzarlo nel Community Server Connector. Si deve quindi cliccare sull'icona per l'aggiunta di un server e indicare l'opzione "No, use server on disk" al primo pop-up.
Apparirà ora il file chooser del sistema operativo e scegliendo la cartella base del server dovrebbe apparire questa schermata nell'editor dei file:
Qui sono racchiuse una serie di impostazioni che si possono selezionare e modificare per l'installazione del server, come un il nome da assegnare, il percorso ed eventualmente la base del server se diversa dalla posizione degli eseguibili.
Quando si è sicuri di aver impostato tutto in modo corretto non si deve fare altro che premere "FINISH".
Gestire un server
Per gestire le azioni di un server basta premere il tasto destro su di esso:
Dal menu lo si può quindi avviare (normalmente o in debug), rimuoverlo (non verranno rimossi i server scaricati ma solo le configurazioni), aggiungere un WAR (o direttamente i binari di un progetto) e modificarlo.
Per ogni azione, avremo comunque un log che si apre nella parte bassa del nostro editor:
Spegnere il Community Server
Si può spegnere l'intero Community Server se si ha la necessità di risparmiare memoria o risorse di calcolo.
Per farlo è necessario cliccare con il tasto destro sul community server, quindi cliccare su "Stop RSP Provider".
Una volta fatto, non si potrà più aggiungere nessun server, né avviarne un altro. Ripetere quindi la procedura per riavviare l'estensione (questa volta vi sarà scritto "Start RSP Provider").
Spring
Per avere il supporto di Spring bisogna innanzitutto installare le estensioni adatte. Quelle consigliate sono:
vscjava.vscode-spring-initializr
;Pivotal.vscode-spring-boot
;vscjava.vscode-spring-boot-dashboard
.
Per chi lo desidera esiste un'estensione che si occupa di scaricare tutte le estensioni di Spring, ovvero Pivotal.vscode-boot-dev-pack
.
Creare un progetto con Spring Boot
Creare un progetto Spring è molto semplice, la procedura prevede di aprire la palette di comandi (CTRL+Shift+P) e cercare la voce "Spring Create". La scelta proposta è tra l'uso di Gradle e quello di Maven come gestori di progetto.
Supponendo di selezionare Maven, verrà ora chiesto quale versione di Spring Boot utilizzare.
e quale linguaggio:
Successivamente viene richiesto di selezionare le informazioni progettuali come il group id
:
l'arctifact id
(o nome del progetto):
il formato di packaging del progetto:
la versione di Java
e di selezionare, con un menù a scelta multipla, le dipendenze di Spring che si vogliono includere con Maven:
E infine, dopo aver selezionato con il file chooser del nostro sistema operativo, il percorso del nostro progetto. Una notifica collocata in basso a destra ci informerà dell'avvenuta creazione:
Gestione del progetto
A questo punto dovrebbe essere essere apparsa una nuova icona sul pannello laterale di Visual Studio Code, un esagono con il simbolo del Poweron. Esso introduce una nuova sezione interamente dedicata a Spring:
Cliccando sul nome del progetto dovrebbe abilitarsi la vista nelle sezioni inferiori, che mostrano i beans e gli endpoint:
Avvio del progetto
È ora possibile avviare il progetto passando con il mouse sopra il suo nome (in alto) e selezionando un'icona tra le due che vengono proposte:
La prima avvierà il progetto, la seconda abiliterà anche il debug.
Checkstyle
Spesso in un progetto è necessario avere delle linee guida che obblighino gli sviluppatori a seguire uno stile unico che renda leggibile il codice.
Il Checkstyle è un software che si occupa di restituire eventuali errori se non si verificano delle condizioni di "formattazione" del codice. Tutte le informazioni utili al suo impiego sono reperibili nella documentazione ufficiale.
Richiede, oltre che il jar apposito, un file di configurazione che definisca le regole, come ad esempio quello fornito da Google.
L'estensione
L'estensione migliore è sicuramente quella di ShengChen con id shengchen.vscode-checkstyle
.
Una volta installata essa deve essere configurata. Consiglio innanzitutto di disabilitare l'estensione per poi abilitarla solo "a progetto" e andare nelle impostazioni (sempre legate al workspace, per comodità) e scrivere:
"java.checkstyle.configuration": "/percorso/a/file/checkstyle.xml",
"java.checkstyle.version": "versione.checkstyle"
La versione del Checkstyle deve corrispondere a quella del nostro jar (o del pom).
In alternativa si può impostare tutto graficamente: nelle impostazioni cercare "Checkstyle" e quindi modificare "Checkstyle Configuration" inserendo il percorso del file di configurazione e "Checkstyle Version" con la versione.
Altre estensioni utili
Non è tutto, altre estensioni possono aiutarvi nel vostro quotidiano flusso di lavoro come sviluppatore Java. Eccone alcune scelte tra quelle che reputo più utili.
Decompiler
Il Decompiler permette di visualizzare sorgente compilato come codice in chiaro. Usa il bytecode di Java per tentare di ricostruire il più fedelmente possibile la struttura della classe originaria.
L'estensione da installare ha id dgileadi.java-decompiler
, una volta installata si integra direttamente alle estensioni di Java già presenti nel pacchetto standard.
Si può quindi premere su "Vai a definizione" per vedere come è stata strutturata una classe, cliccando con il tasto destro sul suo nome:
Se il sorgente di quella classe non è disponibile essa verrà decompilata e ricreata a partire dalle informazioni del bytecode. Se la prima riga contiene un commento come il seguente:
// Source code is unavailable, and was generated by the Fernflower decompiler.
Significa che il decompiler lo ha tradotto con successo.
Lombok
Se non si hanno installate le estensioni di Spring normalmente non si ha neanche supporto a Lombok. Per avere il supporto completo meglio installare l'estensione vscjava.vscode-lombok
.
L'estensione riconosce che una particolare classe ha set
e get
li dove son identificate le annotazioni, inoltre si possono generare in maniera automatica anche le annotazioni, utilizzando la command palette (CTRL+SHIFT+p) e scrivendo "lombok":