Konfiguration
Bevor Sie mit der Konfiguration von IDEA beginnen, müssen Sie sowohl das git-Repository des Projekts (im folgenden Projekt-git), als auch das git-Repository des Nuclos-Kerns (im folgenden Kern-git) klonen.
Wechseln Sie nun im git zu dem Tag des Kerns, welcher der Nuclos-Version der Projekt-Installation entspricht (git checkout).
Nun sind Sie bereit, die Konfiguration von IDEA anzugehen.
Richten Sie maven ein: File -> Settings -> Build, Execution, Deployment -> Build Tools -> Maven | |||||||||
Stellen Sie sicher, dass unter File → Settings → Build, Execution, Deployment → Compiler → Java Compiler der Ajc gesetzt ist (Dafür notwendig ist das AspectJ Plugin von IntellJ) | |||||||||
Öffnen Sie das Projekt (Projekt-git) in IDEA: File -> Open... Importieren Sie das Maven Projekt (ein Popup sollte erscheinen). Lassen Sie Maven die Quellen generieren. | |||||||||
Stellen Sie die Profile-Settings ein (je nach Projekt), mindestens aber das quick-Profil | |||||||||
Bauen Sie das Modul. | |||||||||
Nun kann der Kern-git eingebunden werden. Öffnen Sie zu diesem Zweck die Modul-Einstellungen: | |||||||||
Hier kann der Kern-git importiert werden (Import Module): | |||||||||
Einige Sourcen werden in Nuclos generiert und sind nicht im Git eingecheckt. Über: "nuclos-schema" > rechte Maustaste > Maven > Generate Sources and Update Folders werden die Sourcen generiert. | |||||||||
Sobald das Modul geladen ist, navigieren Sie ins Verzeichnis /[Pfad zu Kern-git]/nuclos-war/src/main/webapp/META-INF/. Hier finden sie eine Datei context-template.xml - Erstellen Sie eine Kopie der Datei im selben Verzeichnis und nennen Sie diese context.xml. Passen Sie nun die vier value-Parameter (von context.xml) an, so dass diese auf die entsprechenden Konfigurationsdateien zeigen, die sich im Verzeichnis ihres installierten Nuclos-Projekts (Projekt-Installation) befinden. Nun können Sie auch für den Kern die Quellen mit Maven importieren und das Modul bauen. Anmerkung: Falls es im Extension-Projekt eine extension-war gibt, hat es sich bewährt, die context.xml statt dessen dort zu erstellen. also im Verzeichnis /[Pfad zu Project-git]/<extension>-war/src/main/webapp/META-INF/. Das Verzeichnis /[Pfad zu Kern-git]/nuclos-war/src/main/webapp/META-INF/ sollte dann besser keine context.xml enthalten. | |||||||||
Um den Server einzurichten, gehen Sie auf Run -> Edit Configurations... : | |||||||||
Erstellen Sie einen neuen Tomcat-Server: | |||||||||
Konfigurieren Sie diesen:
Unter Umständen müssen noch die Ausführungsrechte der Tomcat-Start-Scripte gesetzt werden, z.B.: chmod u+x apache-tomcat-..../*.sh | |||||||||
In manchen Fällen wird context.xml beim Deployment nicht in das target-Verzeichnis übernommen. In diesem Fall hilft es die Datei context.xml unter File > Project Structure... > Project Settings > Artifacts > Output Layout > META-INF hinzuzufügen. | |||||||||
Wenn das Projekt auf einer Oracle-Datenbank basiert, ist ein weiterer Schritt notwendig: Die ojdbc6.jar (ggf. in der passenden Oracle-Version) muss das Verzeichnis /[Pfad zu Kern-git]/nuclos-war/src/main/webapp/META-INF/lib kopiert werden (bei Extensions wieder entsprechend <extension-war>). Der Server kann jetzt gestartet werden. (Am besten im Debug-Modus) Wenn es beim Server-Start eines Extensions-Projekts Kompilierfehler bei den Regeln gibt, weil einige Nuclos-Klassen nicht gefunden werden können, stellen Sie sicher, dass die Bibliothek nuclos-ccce.jar unter dem Pfad /[Pfad zu Projekt-git]/<extension>-war/target/<extension>-war/webapp/WEB-INF/lib zu finden ist. Wenn die Datei dort fehlt, fügen Sie die nuclos-ccce - Dependency aus der /nuclos-war/pom.xml in die /<extension>-war/pom.xml ein. Danach das Projekt neu bauen (s.u.). | |||||||||
Abschließend muss noch der Client erstellt werden: | |||||||||
Konfiguration des Clients:
Danach kann der Client gestartet werden. (Am besten im Debug-Modus) |
Das Projekt neu bauen
Eine erfolgreiche Einbindung von Nuclos in Intellij ist nicht immer einfach und ein Scheitern kann verschiedene Ursachen haben. Hier ist möglicherweise etwas Geduld gefragt. Manchmal reicht es auch, das Projekt noch einmal von Null an bauen zu lassen.
Wenn Sie an der Konfiguration oben etwas geändert haben und/oder nochmal alles sauber aufbauen wollen, gehen Sie bitte wie folgt vor:
Intellij aufräumen und neu starten | Unter File > Invalidate Caches... alle Checkboxen anhaken und Invalidate and Restart |
Reload all Maven Projects | |
Clean auf allen root - Maven-Projects | |
Generate Sources and Update Folders auf allen root - Maven-Projects | |
Rebuild Project |
Troubleshooting
IntelliJ erkennt /[Pfad zu Projekt-Installation]/tomcat/apache-tomcat-9.x nicht als Tomcat-Home an. | Die entsprechende Tomcat-Version muss manuell installiert werden. Hier eine Beispielanleitung: https://medium.com/@dolthead/upgrade-intellij-idea-to-tomcat-9-0-8-d2a560606231 |
Das Projekt wird gebaut, aber der Server startet nicht mit der Meldung: " | Es handelt sich um einen Bug mit der Kombination aus Tomcat - und Java - Version (https://github.com/classgraph/classgraph/issues/291). Die neueste JDK 8 benötigt z.B. Tomcat 9. |
Localhost:8080 is already in use. | Es läuft bereits ein Programm auf dem Port 8080. Dieses passiert z.B. in Ubuntu, wenn man Tomcat aus den Paketquellen installiert und nicht manuell abschaltet. |
Weitere Gründe für das Scheitern des Server-Starts | Das in der Projekt-Installation angegebene Schema muss in der Datenbank existieren (es kann aber leer sein). |
Mögliche Probleme und Behebung
Serverstart: nuclos-conf.xml nicht gefunden
→ Projekt - open Module Settings
manuell hinzufügen