2012-08-06 14 views
5

Przełączyłem budowę naszego produktu Eclipse RCP z PDE-build na Maven Tycho. Oprócz głównego (markowego) pliku wykonywalnego programu uruchamiającego, produkt zawiera teraz plik "eclipsec.exe". Chcielibyśmy pominąć ten program uruchamiający oparty na konsoli od naszego produktu, ponieważ może to wprowadzać w błąd naszych klientów. Czy istnieje sposób, aby to zrobić z Tycho?Maven Tycho: Jak wykluczyć plik eclipsec.exe z wersji produktu?

Odpowiedz

11

dostałem taką odpowiedź na tycho-users list:

w projekcie Eclipse repozytorium, przy założeniu, że masz plik .product można umieścić inny plik w tym samym katalogu o nazwie .p2.inf

dla zawartości pliku p2.inf można umieścić punkt styczności p2, aby usunąć plik:

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

1

Nie wiem, jak rozwiązać teno bezpośrednio, ale można to osiągnąć za pomocą wtyczki maven-antrun. Jest trochę sztuczki, aby uzyskać usunięcie pliku eclipsec.exe na aktualnej pozycji. Musisz wstawić krok usuwania pomiędzy zmaterializowaniem a celem archiwizacji wtyczki p2-director. Wstawiłem krok usuwania w fazie testowej przed integracją i przesunąłem krok archiwizacji do testu fazy integracji.

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

Wynik: Brak pliku eclipsec.exe w pliku product.zip.
Nadzieję, że pomaga.

+0

dobry pomysł! Oczywiście, teraz kompilacja musi wywoływać "mvn integration-test" zamiast "mvn package". Chociaż i tak muszę to zrobić, ponieważ testy wtyczek są również powiązane z fazą testu integracji. Ale skończyło się na używaniu pliku p2.inf zgodnie z sugestią na liście mailingowej. Szkoda, nie mogę zaakceptować obu odpowiedzi! –

Powiązane problemy