Build System
Build Installer
Voraussetzungen
- Linux oder Mac OsX (Windows Nutzer: vielleicht funktioniert es mit cygwin, habe ich aber nicht probiert)
- typische Commandozeilen Tools, u.a.
bash
,zip
,unzip
,xargs
,grep
,find
,tree
im PATH - aktuelles maven (z.Z. 3.2.5) im PATH (Bitte KEIN maven aus der Paketverwaltung, dass ist immer völlig veraltet!)
- aktuelles ant (z.Z. 1.9.4) im PATH (Bitte KEIN ant aus der Paketverwaltung, dass ist immer völlig veraltet!)
- Java7 SDK im PATH (bei Java6 handelt man zusätzlich Probleme mit dem signieren von JARs ein), d.h.
java
,javac
,pack200
,unpack200
,jar
,jarsigner
,keytool
, usw. sind im PATH - Launch4j in Version 3.0.2
Einmalig für die ausgecheckten Quellen
cd <nuclos>; cp build.properties_template build.properties
build.properties
editieren und an die lokalen Verhältnisse anpassen.3rdparty.dir
ist ein (zunächst) leeres Verzeichnis, in denen die Tomcats und PostgreSQL Installationspakete hinein geladen werden.
Eigentlicher Build des Installers
cd nuclos-installer
ant main
Lokaler Maven Build
- Voraussetzungen: Siehe 'Installer Build'
cd <nuclos>
mvn -Pquick clean install
Bekannte Probleme
- 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 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.
Link Sammlung
Maven
Maven Tipps und Tricks
Ant
Ant Installer Build
jarsigner / JARs signieren
Überblick
Inhalte