Softwareinstallation Entwicklungssystem - HeinrichKnauf/Icecreaminventory-Doku GitHub Wiki

Alle Softwaresysteme für die Entwicklung stehen sowohl für Linux als auch für Windows zur Verfügung. Dadurch ist die Entwicklung prinzipiell auf beiden Betreibssystemen möglich. Alle Angaben in diesem Text beziehen sich aber auf Linux. Das Hostsystem Raspbian leitet sich von Debian ab.

Backend

Das Icecreaminventory-Backend ist ein SPRING-Projekt.

  1. Java installieren.

    Aktuell wird OpenJDK 11 für Entwicklung und Betrieb verwendet. Die aktuelle Version ist für das modulare JDK 11 eingerichtet, oder neuer. Neu eingerichtete Raspi-Systeme haben als Standard aber auch ein aktuelleres OpenJDK 11 installiert.

    Ältere Versionen des Icecream-Inventory-Backend-Pakets sind nicht dafür konfiguriert, mit einem modularen JDK wie OpenJDK 11 zu bauen. Hierfür wird als JDK jdk-8u172-linux-x64 benötigt. Die .tar.gz Datei ist auf Anfrage verfügbar. Auf dem Produktiv-Raspi ist ebenfalls nur ein JDK 8 installiert.

    Prüfen, ob das Java-Home Verzeichnis vorhanden ist:

     echo $JAVA_HOME
     --> /usr/lib/jvm/java-11-openjdk-amd64
    
  2. Entwicklungssystem installieren

    Das Icecreaminventory-Backend ist ein SPRING-Project. Als Entwicklungssystem kommen in Frage

    • Eclipse mit Spring Plugin
    • Spring Tools Suite 4
  3. Backend Software installieren

    Die Software wird in Github bereitgestellt. git clone <Github-Link> verwenden. Empfohlenes Ziellaufwerk unter Linux:

     ~/icecreaminventory-backend-master
    

    und in Eclipse bzw. STS als Projekt hinzufügen.

  4. Bauen

    Wenn beim Bauen fehler auftreten im Sinne fehlender javax.smartcardio Pakete, sollte überprüft werden, ob das passende JDK und die passende Projekteinstellung verwendet wird: Für OpenJDK 11 muss JDK jdk-8u172-linux-x64 installiert sein.

  5. Starten als Java Application

    Main Class ist „de.bund.bva.icecreaminventory.application.Application”.

  6. Browserzugriff

    localhost:8090

  7. Optional: Spring Boot CLI intallieren

    Falls man Spring über die Kommandozeile nutzen will.

  8. Betrieb hinter einer Firewall - Fehler beim Build im Zussamenhang mit "Parent POM"

    In diesem Fall kann Eclipse nicht auf externe Libraries zugreifen. Diese können dann aus dem Archiv m2.zip, das wir separat vorhalten, nachinstalliert werden, und zwar nach

     ~/.m2/repository
    

Frontend

Das Frontend verwendet Angular und Typescript. Als Entwicklungsumgebung bietet sich Visual Studio Code an. Das node.js Plugin hierzu ist zu empfehlen.

  1. Angular CLI installieren (https://angular.io/guide/setup-local)

  2. Frontend Software installieren

    Die Software wird in Github bereitgestellt. git clone <Github-Link> verwenden. Empfohlenes Ziellaufwerk unter Linux:

     ~/icecreaminventory-backend-master
    
  3. @Isyfact Komponenten installieren

    Das Frontend verwendet einzelne Komponenten aus Isyfact (ng-isy-widgets). Der Inhalt des ZIP-Archivs wird ins Home-Verzeichnis nach ~/@isyfact entpackt.

  4. Compilieren und starten einfach mit „ng serve“ im Verzeichnis

    Dieses Verfahren ist während der Entwicklung des Frontend empfehlenswert. Mit dem Browser kann man dann über den Port 4200 auf das Icecreaminventory zugreifen: localhost:4200. Ansonsten wird das folgende Verfahren verwendet:

  5. Softwarepaket für Spring, Backend und Raspi erzeugen

    Das Softwarepaket für das Raspi wird auf dem Entwicklungsrechner über die Konsole erzeugt:

     cd ~/icecreaminventory-fontend-master/
     ng build --prod --aot=false
    

    Danach befinden sich alle Dateien, die für das Raspi benötigt werden, im Untervezeichnis ./dist.

    Für die Installation auf dem Raspi: Diese Dateien werden mit Administratorrechten ins Verzeichnis /root/static/ des Speichermediums (SD-Karte) kopiert, das für das Raspi vorgesehen ist.

    Für die Installation auf einem Entwicklungsrechner: Auf einem Entwicklugsrechner werden diese Dateien in das Verzeichnis /static des Backend-Softwarepakets von Hand kopiert, z.B. nach ~/icecreaminventory-backend-master/static.

    Das Icecreaminventory-backend bringt einen Tomcat-Server mit, der diese Website präsentiert. Mit dem Browser kann man dann über den Port 8090 auf das Icecreaminventory zugreifen: localhost:8090. Dadurch ist keine weitere Frontend-Konfiguration oder kein spezieller Softwarestart für das Frontend auf dem Raspi nötig, insbesondere kein ng serve!