2012-08-06 7 views
5

Ho cambiato la build del nostro prodotto Eclipse RCP da PDE-build a Maven Tycho. Oltre al principale programma di avvio (branded), il prodotto ora include il file "eclipsec.exe". Vorremmo omettere questo launcher basato su console dal nostro prodotto in quanto potrebbe confondere i nostri clienti. C'è un modo per farlo con Tycho?Maven Tycho: Come escludere eclipsec.exe in una build di prodotto?

risposta

11

ho avuto questa risposta sulla tycho-users list:

Nel progetto eclipse-repository, a patto che abbiate un file .product, è possibile inserire un altro file nella stessa directory chiamata .p2.inf

per i contenuti del file p2.inf si può mettere un touchpoint p2 per rimuovere il file:

instructions.configure=org.eclipse.equinox.p2.touchpoint.natives.remove(path:${installFolder}/eclipsec.exe);

1

Non so come risolvere direttamente con tycho, ma è possibile farlo con il plug-in maven-antrun. C'è un piccolo trucco per ottenere la cancellazione di eclipsec.exe nella posizione attuale. Devi mettere il passaggio di cancellazione tra materialize e l'obiettivo di archivio del plugin p2-director. Ho inserito la fase di eliminazione sul test di preintegrazione di fase e ho spostato la fase di archiviazione sul test di integrazione di fase.

<plugin> 
     <artifactId>maven-antrun-plugin</artifactId> 
     <executions> 
      <execution> 
      <id>delete-eclipsec.exe</id> 
      <phase>pre-integration-test</phase> 
      <configuration> 
       <target> 
       <delete file="${project.build.directory}/products/<<your.product.id>>/win32/win32/x86/eclipsec.exe"/> 
       </target> 
      </configuration> 
      <goals> 
       <goal>run</goal> 
      </goals> 
      </execution> 
     </executions> 
     </plugin> 
     <plugin> 
     <groupId>org.eclipse.tycho</groupId> 
     <artifactId>tycho-p2-director-plugin</artifactId> 
     <version>${tycho-version}</version> 
     <executions> 
      <execution> 
      <id>materialize-products</id> 
      <goals> 
       <goal>materialize-products</goal> 
      </goals> 
      </execution> 
      <execution> 
      <id>archive-products</id> 
      <phase>integration-test</phase> 
      <goals> 
       <goal>archive-products</goal> 
      </goals> 
      </execution> 
     </executions> 
     </plugin> 

Il risultato: nessun file eclipsec.exe nel file product.zip.
Spero che questo aiuti.

+0

Buona idea! Ovviamente, la build ora deve chiamare "mvn integration-test" invece di "mvn package". Anche se ho bisogno di farlo comunque, poiché i plug-test sono legati anche alla fase di test di integrazione. Ma ho finito per usare un file p2.inf come suggerito sulla mailing list. Peccato, non posso accettare entrambe le risposte! –