2012-10-04 19 views
7

Sto creando un prodotto basato su Eclipse 3.6.2 per il nostro progetto. L'idea è di creare un'installazione Eclipse che abbia tutti i plug-in che richiediamo e che tutte le configurazioni siano configurate come ne abbiamo bisogno per il progetto.Definire siti di aggiornamento nel file config.ini

Come parte di ciò, voglio essere sicuro che i nostri siti di aggiornamento siano inclusi, ma come posso farlo?

Se scelgo di esportare le preferenze, i siti di aggiornamento non sono inclusi. Posso esportare siti di aggiornamento dalla pagina delle preferenze e ottenere un file XML con loro, ma come posso includerlo nel mio file config.ini? O c'è un altro modo?

L'obiettivo è, quando l'utente esegue il prodotto Eclipse personalizzato, i nostri siti di aggiornamento saranno nell'elenco dei siti. Idealmente, gli unici nella lista.

risposta

7

È possibile aggiungere un file p2.inf che indica particolari siti di aggiornamento quando le cose sono installati:

instructions.configure=\ 
addRepository(type:0,location:http${#58}//www.eclipse.org/equinox/p2/testing/updateSite);\ addRepository(type:1,location:http${#58}//www.eclipse.org/equinox/p2/testing/updateSite); 

Questo aggiungerebbe www.eclipse.org/equinox/p2/testing/updateSite.

Questo file (p2.inf) deve essere nella stessa directory del file MANIFEST.MF. Puoi leggere ulteriori informazioni su questo here.

+0

Grazie, ma non funziona. Quando verrà eseguito p2.inf? L'ho aggiunto alla mia funzione di cui è composto il prodotto. Quindi utilizzo la procedura guidata di esportazione del prodotto Eclipse per creare un prodotto e un repo. L'esecuzione del prodotto o l'installazione dal repository non mi dà un Eclipse con i siti di aggiornamento aggiunti. La fase nel file p2 ha qualcosa a che fare con questo? Sto usando 'configure' al momento. – Fredrik

+1

Le istruzioni per esso dovrebbero essere create durante la compilazione e archiviate nel content.xml. Quando si installa dal repository, dovrebbe essere aggiunto. Questo esempio aggiunge le impostazioni predefinite all'eclipse di eclipse: http://git.eclipse.org/c/platform/eclipse.platform.releng.aggregator.git/tree/eclipse.platform.releng.tychoeclipsebuilder/sdk/sdk.p2. inf?h = R4_2_maintenance –

+0

Strano, funziona anche se non penso di aver fatto qualcosa di diverso. Immagino che darò la colpa al computer che sta facendo a pezzi. Grazie a @PaulWebster e Ian – Fredrik

1

Poiché esiste una probabile possibilità che dovrò farlo di nuovo, e nessuna possibilità mi ricordo come farlo la prossima volta, scriverò giù per le scale che ho passato:

ho creato un file p2.inf con istruzioni;

instructions.configure=\ 
org.eclipse.equinox.p2.touchpoint.eclipse.addRepository(type:0,location:http${#58}//<my_url_here>,name:<my_name_here>,enabled:true);\ 
org.eclipse.equinox.p2.touchpoint.eclipse.addRepository(type:1,location:http${#58}//<my_url_here>,name:<my_name_here>,enabled:true);\ 
org.eclipse.equinox.p2.touchpoint.eclipse.addRepository(type:0,location:http${#58}//<my_url_here>,name:<my_name_here>,enabled:true);\ 
org.eclipse.equinox.p2.touchpoint.eclipse.addRepository(type:1,location:http${#58}//<my_url_here>,name:<my_name_here>,enabled:true);` 

Secondo the Eclipse wiki il inf-file potrebbe essere collocato nella stessa directory come il mio feature.xml, ed è quello che ho fatto.

Avevo un prodotto che consisteva di questa funzione, quindi ho esportato il prodotto utilizzando la procedura guidata di esportazione del prodotto Eclipse. Mi sono assicurato di costruire un repository.

Al termine della compilazione, il repository aveva un content.jar. All'interno di content.jar c'era un content.xml. Esaminandola, sono riuscito a trovare:

<touchpointData size='1'> 
    <instructions size='1'> 
    <instruction key='configure'> 
     org.eclipse.equinox.p2.touchpoint.eclipse.addRepository(<all my update sites>); 
    </instruction> 
    </instructions> 
</touchpointData> 

Quindi questo verificato che l'esportazione ha effettivamente vedere il mio file p2.inf e fare qualcosa con esso.

installare dal repository che ho usato uno script di Eclipse Direttore:

cmd /c "C:\Program\Eclipse\director\director -consoleLog -bundlepool c:/program/eclipse/eclipse3.6_custom -profileProperties "org.eclipse.update.install.features=true" -i MyProduct.Product -r "file:/C:\eclipse\exported\repository" -d c:/program/eclipse/eclipse3.6_custom -p helios"` 

Lo script installato il prodotto dal repository alla destinazione.

+2

Grazie, Fredrik, è stata una grande informazione aver scritto, cinque! :) – Fredrik

+1

È in qualche modo ingiusto, quel futuro: Fredrik non può sopravvivere oltre-Fredrik (perché è perso e passato nel flusso del tempo). – Lii