2015-05-08 22 views
8

Ho un progetto di installazione di IzPack di lavoro istituito con Maven e ha aggiunto in seguito al mio script di installazione install.xml a [installation] [listeners]:Aggiungi InstallerListener al IzPack progetto di installazione con Maven

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


Purtroppo, la linea sembra essere ignorato e il debugger non ferma su punti di interruzione impostati nella classe InstallListener. Ho letto the documentation per InstallListener s, ma non è utile in quanto ho integrato il processo di compilazione con maven; qui ci sono le parti rilevanti del Progetto Object Model 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> 

Che cosa mi manca qui?


Nota: Il programma di installazione compilato contiene il file di classe InstallerListener specificato, quindi è disponibile in fase di esecuzione.

+0

Gli stati del plug-in izpack-maven per customPanelDirectory: ubicazione dei jar del pannello personalizzato esterno che devono essere collocati sotto la directory bin/pannelli secondari. (es. $ {customPanelDirectory/bin/panels). Corrisponde all'impostazione e alla posizione del nostro file di classe InstallListener nel programma di installazione? – Torsten

+0

Costruisco i pannelli insieme allo script di installazione e lo avvolgo in un jar con ant/maven-dependency-plugin. –

+0

Fin qui tutto bene. Ma questo file jar si trova in {customPanelDirectory}/bin/panels quando si crea l'installer? – Torsten

risposta

1

È necessario posizionare il file jar contenente le classi del pannello nella cartella {customPanelDirectory}/bin/panels in cui verrà prelevato automaticamente dal plug-in izpack-maven.

Nel caso sopra questa cartella si risolverebbe su {staging.dir}/bin/panels poiché è stato configurato <customPanelDirectory>${staging.dir}</customPanelDirectory>.

Aggiungerlo al file install.xml non funzionerà, poiché questo verrà risolto al momento dell'installazione, ma non al momento della compilazione dell'installatore.

+0

Dove è '' $ {customPanelDirectory} ''? E sei sicuro che tutto il codice dovrebbe essere trattato come un "pannello"? Perché non è solo un pannello. Ha una logica di business e un sacco di classi di pannelli. –

+0

$ {customPanelDirectory} è ciò che è stato definito nella configurazione del plugin: ' $ {staging.dir}'. Lì dovresti posizionare il barattolo contenente tutte le classi necessarie. – Torsten

+0

grazie, ci proverò. –