2015-05-08 13 views
8

Ich habe ein Arbeits IzPack Installer-Projekt mit Maven einzurichten und zu folgenden hinzugefügt mein Skript install.xml auf [installation] [listeners] installieren:hinzufügen InstallerListener Installer Projekt IzPack mit Maven

<listener classname="(company-name).listener.InstallerListener" stage="install"/>


Leider scheint die Zeile ignoriert werden und der Debugger am Set von Haltepunkten nicht halt nicht in der InstallListener Klasse. Ich habe gelesen the documentation für InstallListener s, aber es ist nicht nützlich, da ich den Build-Prozess mit Maven integriert habe; hier sind die relevanten Teile des Projektobjektmodell pom.xml:

<properties> 
    <izpack-standalone.version>4.3.1</izpack-standalone.version> 
</properties> 

<dependencies> 
    <!-- izpack --> 
    <dependency> 
     <groupId>org.codehaus.izpack</groupId> 
     <artifactId>izpack-standalone-compiler</artifactId> 
     <version>${izpack-standalone.version}</version> 
     <optional>true</optional> 
    </dependency> 
</dependencies> 

<plugins>  
    <!-- IzPack compiler --> 
    <plugin> 
     <groupId>org.codehaus.izpack</groupId> 
     <artifactId>izpack-maven-plugin</artifactId> 
     <version>${org.codehaus.izpack.izpack-maven-plugin.version}</version> 
     <dependencies> 
      <dependency> 
       <groupId>org.codehaus.izpack</groupId> 
       <artifactId>izpack-standalone-compiler</artifactId> 
       <version>${izpack-standalone.version}</version> 
      </dependency> 
     </dependencies> 
     <configuration> 
      <izpackBasedir>${staging.dir}</izpackBasedir> 
      <customPanelDirectory>${staging.dir}</customPanelDirectory> 
     </configuration> 
     <executions> 
      <execution> 
       <id>standard-installer</id> 
       <phase>package</phase> 
       <goals> 
        <goal>izpack</goal> 
       </goals> 
      </execution> 
     </executions> 
    </plugin> 
</plugins> 

Was ich hier fehlt?


Hinweis: Das kompilierte Installationsprogramm der angegebenen InstallerListener Klassendatei enthält, so ist es zur Laufzeit zur Verfügung.

+0

Das izpack-maven-plugin states für das customPanelDirectory: Position der externen benutzerdefinierten Panel-Gläser, die unter Unterverzeichnis bin/Panels platziert werden müssen. (zB $ {customPanelDirectory/bin/panels). Passt das zu Ihrem Setup und zum Speicherort unserer InstallListener-Klassendatei im Installer? – Torsten

+0

Ich baue die Panels zusammen mit dem Installationsskript und wickle alles in ein Jar mit ant/maven-dependency-plugin. –

+0

So weit so gut. Befindet sich diese JAR-Datei beim Erstellen des Installationsprogramms in {customPanelDirectory}/bin/panels? – Torsten

Antwort

1

Sie müssen die JAR-Datei, die Ihre Panel-Klassen enthält, in den Ordner {customPanelDirectory}/bin/panels legen, wo sie automatisch vom izpack-maven-plugin abgeholt wird.

Im obigen Fall würde dieser Ordner auf {staging.dir}/bin/panels aufgelöst, seit Sie <customPanelDirectory>${staging.dir}</customPanelDirectory> konfiguriert haben.

Das Hinzufügen der Datei zur Datei install.xml funktioniert nicht, da dies zur Installationszeit, aber nicht zur Erstellungszeit des Installers durchgeführt wird.

+0

Wo ist '' $ {customPanelDirectory} ''? Und sind Sie sicher, dass der gesamte Code als "Panel" behandelt werden sollte? Weil es nicht nur ein Panel ist. Es hat Geschäftslogik und eine Reihe von Panel-Klassen. –

+0

$ {customPanelDirectory} ist das, was Sie in Ihrer Plugin-Konfiguration definiert haben: ' $ {staging.dir}'. Dort sollten Sie das Glas mit allen benötigten Klassen platzieren. – Torsten

+0

danke, ich werde das versuchen. –