2011-11-25 8 views
11

Voglio creare un'applicazione RCP con una piattaforma di destinazione che è una directory con Maven/Tycho.
Ora ho alcuni problemi che non è stato possibile risolvere le dipendenze.Come posso utilizzare una directory locale come piattaforma di destinazione per un build Tycho?

Internal error: java.lang.RuntimeException: "No solution found because the 
problem is unsatisfiable.": ["Unable to satisfy dependency from 
de.test.prototype.main 1.0.0.qualifier to bundle org.eclipse.ui 0.0.0.", 
"Unable to satisfy dependency from de.test.prototype.main 1.0.0.qualifier 
to bundle org.eclipse.core.runtime 0.0.0.", ... 

In tutto ci sono diversi problemi risoluzione delle dipendenze, quindi penso che Tycho non è possibile utilizzare la mia piattaforma di destinazione.
Ho letto http://wiki.eclipse.org/Tycho/Target_Platform e c'è la seguente nota:.

I tipi di location "Directory", "installazione" e "Caratteristiche" non sono supportate"

Quindi la mia domanda è: come faccio ad avere Tycho a usare la mia piattaforma di destinazione, anche se si tratta di una directory?

+0

Ho creato un file .target e ho provato a utilizzarlo tramite "configurazione della piattaforma di destinazione" e artefatto, ma non è in grado di risolvere le dipendenze ... è solo un supporto del repository online? – Orri

+0

Orri, il tuo commento sembra un altro problema. Dovresti fare una nuova domanda per questo. – oberlies

risposta

1

Secondo la mia exprerience, Tycho supporta solo linea p2 repository. si rifiuta di lavorare con un repo p2 situato su un disco locale. Strano, ma vero.

+3

Questa affermazione non è corretta: Tycho ha il supporto completo per la modalità offline da 0.14.0 e da allora non ci sono segnalazioni di bug su questo argomento. Ovviamente è necessario prima una build online in modo che la cache sia piena, ma la modalità offline funziona. – oberlies

7

Tycho richiede metadati p2 per risolvere le dipendenze nella build. Questo è il motivo per cui non è possibile utilizzare una cartella con solo bundle e funzionalità.

Tuttavia, è possibile convertire la cartella in un repository p2 utilizzando Features and Bundles Publisher Application. Dopo aver effettuato questa operazione, è possibile fare riferimento alla cartella come posizione "Sito software" tramite un URL file: nel file di definizione del target. Allora anche Tycho sarà in grado di usarlo.

Nota tuttavia che dovresti chiedertelo prima se davvero hai bisogno di farlo: le caratteristiche e i bundle nella tua cartella in realtà non sono disponibili in nessun repository p2? Se lo sono, si consiglia vivamente di non eseguire Publisher e Bundles Publisher su di essi (o si potrebbero causare violazioni delle ipotesi di base di p2 che potrebbero portare a problemi che sono in genere visibili solo agli utenti). Invece, dovresti fare riferimento a queste caratteristiche e bundle direttamente dal repository p2, ad es. tramite la posizione "Sito software" nel file di destinazione.

3

Creare un pronti contro termine da plug-in e caricarlo su un server http (come Apache) e puntare il pom Tycho al repo

Questo esempio è per il mac e eclissi 4 ma con alcuni si tweaking possibile farlo funzionare su altre piattaforme.

innanzitutto creare una cartella src sul desktop. In questa cartella crea 2 cartelle: plug-in

Ora copia i plug-in nella cartella dei plug-in e le funzionalità nella cartella delle funzionalità.

Quindi creare una cartella di destinazione vuota da qualche parte (caricare questa cartella sul server)

per questo esempio ho creato le mie due cartelle sul desktop per mantenere le cose semplici

Poi faccio questo:

destination folder : /Users/yves/Desktop/repo 
source folder : /Users/yves/Desktop/src 

Terminal app : cd /Applications/Eclipse4 

./eclipse  -debug -consolelog -nosplash -verbose -application org.eclipse.equinox.p2.publisher.FeaturesAndBundlesPublisher -metadataRepository file:/Users/yves/Desktop/repo -artifactRepository file:/Users/yves/Desktop/repo -source /Users/yves/Desktop/src -compress -append -publishArtifacts 

La cartella del repository contiene ora un repository della piattaforma di destinazione. Caricalo, regola il pom e costruisci.

Problemi correlati