Versionen im Vergleich

Schlüssel

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

...

  • Es ist möglich, aber nicht einfach, den Installer Build unter Mac OsX zu benutzen.
  • Dagegen gibt es (ungelöste) Schwierigkeiten, den Installer Build unter vagrant zu benutzen.
  • Die Signiertools (jarsigner, keytool) von Java 6 funktionieren nicht zuverlässig und führen regelmäßig zu Schwierigkeiten beim Build (s.u.)
  • Um Java 6 und Java 7 Build zu erzeugen, müssen einige Schwierigkeiten von Maven umgangen werden (s.u.)
  • Die unterschriebenen JARs (bzw. deren pack200 Pakete) werden vom Build lokal im Verzeichnis ~/jar.cache abgelegt, um den Build zu beschleunigen. Dies ist notwendig, da der Jenkins zu erzeugen zum Erzeugen aller signierten JARs für einen Nuclos 4.4 Build etwa 6 Stunden benötigt.
  • Mittelfristig wäre zu prüfen, ob nicht ein Umstieg von Maven (und ant und Bash Skripte) auf Gradle den Build vereinfachen könnte.

Java 6 jarsigner

Der Java 6 jarsigner hat regelmäßig Schwierigkeiten, JARs richtig zu unterschreiben und merkt es dann noch nicht einmal. Die Probleme erkennt man daher erst beim Client Start über Web Start. In der Vergangenheit waren u.A. folgende JARs betroffen:

  • aspectjweaver-1.8.1
  • xmlbean-2.5.0

Das ist auch der Grund, warum es unter Java 6 nicht möglich ist, ein all-in-one JAR zu erzeugen.

Java 6 und Java 7 Builds mit maven

Maven betreibt einen lokalen JAR Cache (normalerweise unter ~/.m2/repository), der für selbst gebaute JARs und heruntergeladene Abhängigkeiten verwendet wird. Wir bauen jedoch Java 6 und Java 7 JARs. Damit in einem Java 6 Build nicht auf einmal Java 7 JARs auftauchen (die dann nicht funktionieren), ist es notwendig, für die beiden Builds unterschiedliche JAR Caches zu verwenden.

Der JAR Cache kann in der settings.xml (normalerweise ~/.m2/settings.xml) konfiguriert werden. Maven lässt sich jedoch davon überzeugen, eine andere settings.xml Datei zu verwenden. Auf dem Jenkins wird daher die Standard settings.xml Datei (die als JAR Cache ~/.m2/repository verwendet) für die Java 6 Builds benutzt, während für Java 7 Builds eine ~/.m2/settings-j7.xml Datei verwendet wird (die als JAR Cache ~/.m2/repository-j7 benutzt). Entsprechende setting Dateien sind (Nuclos intern) in Slack zu finden.

Link Sammlung

Maven

Maven Tipps und Tricks

...