2012-08-06 6 views
5

Ich habe den Build unseres Eclipse RCP-Produkts von PDE-build auf Maven Tycho umgestellt. Zusätzlich zur ausführbaren Hauptprogrammdatei (Branding) enthält das Produkt jetzt die Datei "eclipsec.exe". Wir möchten diesen Konsolen-basierten Launcher von unserem Produkt weglassen, da dies unsere Kunden verwirren könnte. Gibt es eine Möglichkeit, das mit Tycho zu tun?Maven Tycho: Wie eclipsec.exe in einem Produkt Build auszuschließen?

Antwort

11

bekam ich diese Antwort auf den tycho-users list:

In Ihrem Eclipse-Repository-Projekt, dass Sie eine Datei .product haben vorausgesetzt, Sie eine andere Datei im selben Verzeichnis .p2.inf

genannt platzieren für den Inhalt Ihrer p2.inf-Datei können Sie einen p2 Berührungspunkt legen Sie die Datei zu entfernen:

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

1

Ich weiß nicht, wie man mit Tycho direkt löst, aber Sie können dies mit dem Maven-Antrun-Plugin erreichen. Es gibt einen kleinen Trick, um die eclipsec.exe an der richtigen Stelle zu löschen. Sie müssen den Löschschritt zwischen materialize und dem Archivziel des p2-director-plugins setzen. Ich habe den Löschschritt auf den Phasen-Vorintegrationstest gesetzt und den Archivschritt in den Phasenintegrationstest verschoben.

<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> 

Das Ergebnis: Keine eclipsec.exe in der product.zip.
Hoffe, dass hilft.

+0

Gute Idee! Natürlich muss der Build jetzt "mvn integration-test" anstelle von "mvn package" aufrufen. Ich muss das trotzdem tun, da Plugin-Tests auch an die Integrationstest-Phase gebunden sind. Aber ich habe am Ende eine p2.inf-Datei verwendet, wie auf der Mailing-Liste vorgeschlagen. Schade, dass ich beide Antworten nicht akzeptieren kann! –

Verwandte Themen