Versionen im Vergleich

Schlüssel

  • Diese Zeile wurde hinzugefügt.
  • Diese Zeile wurde entfernt.
  • Formatierung wurde geändert.


Panel
borderColorgrey
borderWidth1
borderStylesolid
titleLernziel
In diesem Tutorial lernen Sie, wie Sie ein Nuclos-Projekt in die Entwicklungsumgebung IntelliJ IDEA einbinden.


Panel
borderColorgrey
borderWidth1
borderStylesolid
titleVoraussetzungen

Inhalt
maxLevel2

 


Panel
borderColorgrey
borderWidth1
borderStylesolid
titleSonstiges
  • Troubleshooting



SP Page Status
textDokumentenstatus



Unter Windows muss Git für lange Dateinamen konfiguriert werden:

git config --system core.longpaths true

 

 



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

Image Modified

Ö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.

Image Modified
Bauen Sie das Modul.
Image Modified

Nun kann der Kern-giteingebunden werden. Öffnen Sie zu diesem Zweck die Modul-Einstellungen:

Image Modified
Hier kann der Kern-git importiert werden (Import Module):
Image Modified

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.

Image Modified

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 dort zu erstellen. also im Verzeichnis /[Pfad zu Project-git]/<extension>-war/src/main/webapp/META-INF/.


Image Modified
 

Um den Server einzurichten, gehen Sie auf Run -> Edit Configurations... :

Image Modified 
 Erstellen Sie einen neuen Tomcat-Server:
Image Modified 
 

Konfigurieren Sie diesen:

Application Serverdas Tomcat-Verzeichnis von Projekt-Installation (z.B.: /[Pfad zum Projekt]/nuclos/tomcat/apache-tomcat-7.0.72)
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

Unter Umständen müssen noch die Ausführungsrechte der Tomcat-Start-Scripte gesetzt werden, z.B.:

chmod u+x apache-tomcat-..../*.sh

Image ModifiedImage Modified 

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.

Image Modified

Wenn das Projekt über server-extensions verfügt und/oder auf einer Oracle-Datenbank basiert, ist ein weiterer Schritt notwendig:

Die ojdb6.jar (Oracle.db) und alle .jar - Extensions ([Pfad zu Projekt-Installation]/extensions/server bzw. [Pfad zu Projekt-Installation]/extensions/common) müssen ins Tomcat-lib-Verzeichnis kopiert werden (/[Pfad zu Projekt-Installation]/tomcat/apache-tomcat-7.0.72/lib).

 


Der Server kann jetzt gestartet werden.

 


Abschließend muss noch der Client erstellt werden:

 


Image Modified

Konfiguration des Clients:


Main classorg.nuclos.client.main.Nuclos
VM options (Port muss ggf. angepasst werden)

-ea
-Xmx768m
-Dserver=http://localhost:8080/nuclos-war
-Dfunctionblock.dev=true
-Dsun.awt.disablegrab=true

Use classpath of modulenuclos-client


Image Modified

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:

"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"

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-StartsDas in der Projekt-Installation angegebene Schema muss in der Datenbank existieren (es kann aber leer sein).