Passa ai contenuti principali

JHipster - Uso base






Cosa è

JHipster è un "generatore di applicazioni" che fornisce tutto lo stack necessario ad implementare una applicazione web e/o a microservizi basata su Spring Boot e AngularJs.

E' dotato di un marketplace di componenti già pronte:

https://www.jhipster.tech/#modules

E' dotato di uno strumento web per la modellazione dello schema E-R:

https://start.jhipster.tech/jdl-studio/



Prerequisiti

- Java 8 
- Node.js (usare la versione LTS 64-bit)
- NPM viene installato con Node.js ma va aggiornato
  
  $ npm install -g npm

- Per usare il JHipster Marketplace, installare Yeoman: 
  
  $ npm install -g yo



Uso base

Gli step, presi dal sito ufficiale sono questi:

1. Installare JHipster:
   
  $ npm install -g generator-jhipster

Nota: per installare una versione specifica del generator:

  $ npm install -g generator-jhipster@6.0.5

2. Crea una nuova directory ed entra dentro questa:

  $ mkdir myApp
  $ cd MyApp

3. Eseguire JHipster e seguire le istruzioni sullo schermo:

  $ jhipster

Nota: in fase di sviluppo impostare a "No" l'opzione relativa alla cache di Hibernate perché fa caching dei resultset nelle interrogazioni al db e non li aggiorna fin quando non scade il tempo di cache. 

4. Modellare le proprie entità su JDL Studio e scaricare il file jhipster-jdl.jh

5. Generare le entità con il comando:

  $ jhipster import-jdl jhipster-jdl.jh


A questo punto il sistema automaticamente genererà tutto il codice necessario, farà partire la build e pacchettizzerà l'applicazione.
Per lanciare l'applicazione eseguire nella directory di questa il comando:

  $ npm start





ATTENZIONE: così parte solo il frontend (quindi il login non funzionerà).

Per il backend bisogna lanciare

  $ mvnw

oppure 

  $ yarn start

Se non è presente sul sistema:

1. Scaricare il repository git:

  $ git clone git://github.com/vdemeester/mvnw.git ~/.mvnw

2. Aggiungere il path di mvn alla variabile di ambienre $PATH:

  $ echo 'export PATH="$HOME/.mvnw/bin:$PATH"' >> ~/.bash_profile

3. Inserire l'init di mvnw all'avvio della consolle:
  
  $ echo 'eval "$(mvnw init -)"' >> ~/.bash_profile


NOTA: ho avuto un sacco di problemi con la versione di jdk installata sul sistema. Ho risolto con openjdk-8-jdk.


Con il wizard del lancio del comando "jhipster" ho specificato come database "MongoDB". Quindi quando partiva mvnw mi restituiva un errore di accesso ad database. Questo perchè MongoDb non è installato.

Ho scaricato dal docker-hub il docker con MongoDb:

    $ docker pull mongo

L'ho eseguito dovendo specificare la porta e dove avere i dati in persistenza:

    $ sudo docker run -p27017:27017 --name myMongoDbExposedNow -v /home/utente/myApp/datiMyApp:/data/db -d mongo

E la MyApp mi ha loggato:





Oltre all'applicazione già pronta per il CRUD sulle entità sulle quali è stata modellata si hanno anche tutti i servizi disponibili nativamente come API:




Sviluppo


Se si usa Eclipse come IDE (installare il plugin per Maven):

- Importare il progetto generato da JHipster come "Maven Project"
- Impostare sulle proprietà del progetto, nel menu Maven:
   
    “Active Maven Profiles”, type dev,IDE

Fare riferimento alla guida :


https://www.jhipster.tech/configuring-ide-eclipse/

Esiste anche un apposito plug-in per eclipse dal quale ho provato ad usare il wizard per la creazione di una applicazione a microservizi ma si comporta in maniera molto diversa dal wizard eseguibile a riga di comando perché crea un progetto vuoto.


Note


- L'importazione in Eclipse di progetti come Maven porta questo errore fra i Markers di Eclipse:

"The project was not built since its build path is incomplete. Cannot find the class file for javax.servlet.ServletContext. Fix the build path then try building this project"

Si risolve aggiungendo a "Properties">"Java Build Path">"Libraries" la libreria: 


Project > Properties > Java Build Path > Libraries > Add library from library tab > Choose server runtime > Next > choose Apache Tomcat

Oppure mediante pom (se il progetto è di tipo Maven):
   <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>javax.servlet-api</artifactId>
      <scope>provided</scope>

   </dependency>

- A questa soluzione segue l'errore: 

"Cannot find the class file for io.undertow.Undertow$Builder."
Soluzione:


  • Right click on Project -> Properties -> Maven
  • In “Active Maven Profiles”, type dev,IDE
- Per evitare che "mvnw" faccia la build delle classi di test basta aggiungere nelle "<properties>" del pom:
   
   <maven.test.skip>true</maven.test.skip>




Licenza Creative Commons
Quest'opera è distribuita con Licenza Creative Commons Attribuzione 4.0 Internazionale (CC BY 4.0) - Condividi allo stesso modo

Commenti

Post popolari in questo blog

Telecamere Ip con accesso "nascosto"

Telecamere Ip con accesso "nascosto" Storia triste di un auto-hacking obbligato che mi ha fatto scoprire come la nostra privacy è realmente messa a rischi. Storia Ho acquistato dal mercatino/fiera del Radioamatore di Fasano quattro telecamere IP. La scatola riporta "Smart Camera" LF4810. Ne ho montata una e testata in tutte le sue funzionalità per oltre un mese. Chiaramente la manualistica scarsissima, come da tradizione in questi prodotti cinesi di costo molto concorrenziale, consiste in un "pieghevole" di 4 facciate. Chiaramente non erano documentate le impostazioni necessarie per attivare i protocolli ONVIF e RTSP che mi sono indispensabili per l'uso che ne devo fare. Nonostante questa scarsa documentazione dopo l'installazione base fatta con l'apposita app: tutto sembrava corretto. Chiaramente la prima azione che ho compiuto è stata quella di cambiare la password che di default è "123". Subito dopo h...

Dynamic DNS con Duckdns.org in HTTPS

Obiettivo Avere un dominio https con certificato valido da usare come endpoint pubblico per Homeassistant e per un WebHook per i bot telegram. Fase 1 Registrazione del dominio in un servizio di dynamic DNS come https://www.duckdns.org/   : Scegliere per quale sistema operativo installare il client che si occuperà dell'aggiornamento dell'ip: Seguire la semplice guida per la configurazione del processo cron: Fase 2 Creazione del certificato e installazione sul server. Di tutto questo si occuperà una applicazione che si chiama certbot. $ sudo add-apt-repository ppa:certbot/certbot $ sudo apt install python-certbot-apache $ sudo certbot --apache -d ol3.duckdns.org -d www.ol3.duckdns.org Fase 3 Esporre il servizio https sulla rete pubblica. Aprire o reindirizzare la porta 443 verso l'host sul quale si è fatta la configurazione di certbot dal proprio router. Il certificato di certbot è valido per novanta giorn...