...
| Auszug | ||
|---|---|---|
| ||
Nuclos IntelliJ IDEA: Kern-Git, Projekt-Git, Maven, Ajc, AspectJ, longpaths, checkout Tag, Entwicklungsumgebung. |
Sprache: Deutsch · English
Nuclos-Kern in IntelliJ IDEA einbinden – Repositories klonen, Maven und AspectJ-Compiler konfigurieren.
| Status | ||||
|---|---|---|---|---|
|
| Status | ||||
|---|---|---|---|---|
|
| Status | ||||
|---|---|---|---|---|
|
| Status | ||||
|---|---|---|---|---|
|
| Panel | ||||||
|---|---|---|---|---|---|---|
| ||||||
Auf dieser Seite
|
Ein Nuclos-Projekt (Kern) in die IDE IntelliJ IDEA einbinden, um am Nuclos-Quellcode oder an Extensions zu entwickeln.
| Warnung | |||||
|---|---|---|---|---|---|
| |||||
Windows: Git für lange Dateinamen konfigurieren:
|
Sowohl das Projekt-Git als auch das Kern-Git klonen. Im Kern auf den Tag wechseln, der zur Nuclos-Version der Projekt-Installation passt (git checkout <tag>).
| maxLevel | 2 |
|---|
| Panel | ||||||||
|---|---|---|---|---|---|---|---|---|
| ||||||||
| In diesem Tutorial lernen Sie, wie Sie ein Nuclos-Projekt in die Entwicklungsumgebung IntelliJ IDEA einbinden. |
| Panel | ||||||||
|---|---|---|---|---|---|---|---|---|
| ||||||||
|
| Panel | ||||||||
|---|---|---|---|---|---|---|---|---|
| ||||||||
|
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.
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.
| Hinweis |
|---|
| 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... :
Konfigurieren Sie diesen:
| Application Server | Am besten, Sie laden sich den Tomcat-Server in der von Nuclos verwendeten Version herunter (die Versionsnummer finden Sie zum Beispiel im Tomcat-Verzeichnis der Projekt-Installation /[Pfad zum Projekt]/nuclos/tomcat/apache-tomcat-<Version>)), und verweisen darauf. Die Verwendung des Pfades /[Pfad zum Projekt]/nuclos/tomcat/apache-tomcat-<Version> kann zu Problemen führen. |
| VM Options | -Dfunctionblock.dev=true -mx1024m |
| Deploy at server startup | Add -> Artifact... -> nuclos-war-exploded (oder falls ein extension-war existiert, natürlich extenstion-war-exploded) |
| Application context | /nuclos-war - bzw. der path der in der context.xml im Context-Tag eingetragen ist. Bei Extensions kann dieser anders lauten. |
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-INFhinzuzufü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:
| Main class | org.nuclos.client.main.Nuclos |
| VM options (Port muss ggf. angepasst werden) | -ea |
| Use classpath of module | nuclos-client |
Danach kann der Client gestartet werden. (Am besten im Debug-Modus)
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:
Reload all Maven Projects
Troubleshooting
Das Projekt wird gebaut, aber der Server startet nicht mit der Meldung:
"SEVERE: Unable to process Jar entry [module-info.class] from Jar [jar:file:/sahibinden/repo/services/sahibinden-web/target/sahibinden-web/WEB-INF/lib/classgraph-4.6.7.jar!/] for annotations org.apache.tomcat.util.bcel.classfile.ClassFormatException: Invalid byte tag in constant pool: 19"
Serverstart: nuclos-conf.xml nicht gefunden
→ Projekt - open Module Settings
manuell hinzufügen