2012-09-11 11 views
7

Questa è una domanda che è stata più frequenti nella comunità Tycho:Eclipse RCP costruito da Tycho include dipendenze opzionali indesiderati

ho migrato il mio Eclipse RCP costruire dal [precedente tecnologia, per esempio eclipse-application/PDE headless build/...] per il nuovo recommended way of building products with Tycho utilizzando il tipo di imballaggio eclipse-repository. Ora la mia distribuzione contiene più fasci di prima.

Il problema sembra essere che Tycho estrae le dipendenze opzionali dei pacchetti inclusi nel mio prodotto. Come posso evitare questo?

risposta

9

di Tycho eclipse-repository imballaggio tipo builds product distributions con la stessa tecnologia (denominata p2) si utilizza anche quando, ad esempio, l'installazione di una nuova funzione nel vostro IDE Eclipse. Questo ha il vantaggio che, diversamente da altre tecnologie di compilazione, non è necessario specificare manualmente tutte le dipendenze dei bundle che si desidera nel prodotto, ma Tycho/p2 le includerà automaticamente per te. (Questo è importante perché altrimenti i bundle non si avviano in fase di esecuzione.)

D'altra parte, questo potrebbe anche essere uno svantaggio: Tycho/p2 include anche alcune dipendenze opzionali che preferireste escludere dal vostro prodotto.

Non c'è alcuna opzione per dire a Tycho di non includere alcuna dipendenza opzionale (perché p2 non ha questa opzione). Tuttavia è possibile identificare i pacchetti opzionali che non si desidera, e esplicitamente escludere dalla target platform con la seguente configurazione:

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

Poi l'accumulo del prodotto non può più vedere il fascio esclusi, e si ometterlo dalla installazione.

Nota: se si ottiene un errore di risoluzione delle dipendenze dopo aver aggiunto la configurazione di cui sopra, c'è qualcosa che non richiede facoltativamente il pacchetto. Anche se è un po 'difficile da leggere, il messaggio di errore ti dirà la catena di dipendenze che porta da qualcosa che stai creando al pacchetto rimosso.