2012-09-11 12 views
7

To jest pytanie, które zostało często zadawane w społeczności Tycho:Eclipse RCP zbudowany przez Tycho zawiera niechciane opcjonalne zależności

I przeniesione mój Eclipse RCP budować z [poprzedniej technologii, npeclipse-application/PDE bezgłowy build/...] do nowego recommended way of building products with Tycho przy użyciu typu opakowania eclipse-repository. Teraz moja dystrybucja zawiera więcej pakietów niż wcześniej.

Problem polega na tym, że Tycho pobiera opcjonalne zależności pakietów zawartych w moim produkcie. Jak mogę temu zapobiec?

Odpowiedz

9

Tycho eclipse-repository opakowanie typu builds product distributions z tej samej technologii (tzw p2) użyć także, gdy na przykład instalując nową funkcję do swojej Eclipse IDE. Ma to tę zaletę, że w przeciwieństwie do innych technologii kompilacji, nie musisz ręcznie określać wszystkich zależności pakietów, które chcesz mieć w swoim produkcie, ale Tycho/p2 automatycznie uwzględni je dla ciebie. (Jest to ważne, ponieważ w przeciwnym razie pakiety nie byłyby uruchamiane w czasie wykonywania).

Z drugiej strony może to być również wadą: Tycho/p2 zawiera również pewne opcjonalne zależności, które wolałbyś chcieć wykluczyć ze swojego produktu.

Nie ma opcji, aby powiedzieć Tycho, aby nie zawierał żadnych opcjonalnych zależności (ponieważ p2 nie ma tej opcji). Jednak można określić opcjonalne pakiety, których nie chcesz, i jednoznacznie wykluczyć je z target platform o następującej konfiguracji:

<plugin> 
    <groupId>org.eclipse.tycho</groupId> 
    <artifactId>target-platform-configuration</artifactId> 
    <version>${tycho-version}</version> 
    <configuration> 
     <filters> 
     <filter> 
      <type>eclipse-plugin</type> 
      <id>unwanted.bundle.id</id> 
      <removeAll /> 
     </filter> 
     </filters> 
    </configuration> 
</plugin> 

Następnie build produkt nie może już zobaczyć wykluczone tobołek, a pominięcie go z instalacja.

Uwaga: Jeśli po dodaniu powyższej konfiguracji pojawi się błąd rozwiązywania zależności, jest coś, co nie jest opcjonalne, wymaga pakietu. Chociaż czytanie jest nieco trudniejsze, komunikat o błędzie powie ci łańcuch zależności, które prowadzą od czegoś, co budujesz do usuniętego pakietu.

Powiązane problemy