Advanced Programming Techniques Project
- Maven (>=3.3.9)
- Docker
- Connessione Internet per la prima esecuzione
Per evitare un bug legato ad AssertJ Swing durante la fase test si consiglia l'utilizzo di un server VNC.
Il file execute-on-vnc.sh
crea un desktop secondario tramite TightVNC, esegue lo script passatogli come argomento (in questo caso la build di Maven) nel desktop secondario, ed infine elimina il desktop all'uscita della build. È quindi richiesta l'installazione del pacchetto TightVNC:
$ sudo apt-get install -y tightvncserver
Il comando completo per l'esecuzione della build e dei test con Maven è il seguente, da eseguire nella root directory della repository:
$ ./execute-on-vnc.sh mvn -f schoolmanager-aggregator/pom.xml clean verify
Se il file $HOME/.vnc/passwd
non è presente (non sono mai stati creati display secondari), è richiesto l'inserimento di una password di minimo 6 caratteri (necessaria) e di una password di visualizzazione (non necessaria, inserire \texttt{n} quando richiesta).
Sono definiti dei profili per il calcolo della code coverage con JaCoCo e per l'esecuzione della mutation analysis tramite PIT: per attivarli è sufficiente aggiungere le seguenti opzioni al comando precedente:
-P enable-jacoco -P enable-mutation-testing
- Avviare il container docker attraverso il seguente comando digitato dalla root della repository
mvn -f schoolmanager-parent/pom.xml docker:start
- Eseguire il seguente comando dalla root della repository:
java -jar schoolmanager-frontend/target/schoolmanager-frontend-0.0.1-SNAPSHOT-jar-with-dependencies.jar
L'applicazione utilizza il database PostgreSQL di default se si desidera cambiarlo è possibile farlo attraverso l'opzione -p
o --persistence-unit-name
, scegliendo tra MYSQL
e POSTGRES
java -jar schoolmanager-frontend/target/schoolmanager-frontend-0.0.1-SNAPSHOT-jar-with-dependencies.jar -p MYSQL