Senast uppdaterad 15.20 fredag 18 juni 2004
Eclipse-baserade produkter måste installeras på rätt sätt i slutanvändarens dator. Specialpaketeringsverktyg, till exempel InstallShield och RPM, används ofta till att skapa körbara installationsprogram som automatiserar installation, uppdatering och avinstallation. I den här kommentaren beskrivs hur du skriver installationsprogram för Eclipse-baserade produkter och utökningar till Eclipse-baserade produkter som kan installeras separat.
Vi antar att en produktutvecklingsgrupp ansvarar för att tillhandahålla det råmaterial som kommer att nå slutanvändares datorer paketerat som ett körbart installationsprogram. Körbara installationsprogram skapas med skript och det gör även de installationsåtgärder som krävs för interaktion med slutanvändaren och lagring av filer i slutanvändarens dator. I den här kommentaren beskrivs i detalj vad de här installationsprogrammen måste göra och hur de bör fungera.
Den här kommentaren bör användas som ett recept för den som ansvarar för att skriva ett installationsprogram för Eclipse-baserade produkter. Två goda anledningar till att vi rekommenderar alla som skriver installationsprogram att följa vårt recept:
Ett produktinstallationsprogram ska kunna användas självständigt - ett program som kan distribueras på en cd-skiva och installeras i alla datorer med lämpliga operativsystem.
För Eclipse krävs körningsmiljön Java2 Java Runtime Environment (JRE) för att köra Java-kod. JRE:er är licensierad programvara som tillhandahålls från Java-leverantörer. Med en licens för omdistribution av en JRE från en JRE-leverantör kan ett företag låta en JRE ingå tillsammans med sin produkt och installera den på slutanvändarens dator samtidigt med produkten. Alternativet är att kräva att en JRE förinstalleras på slutanvändarens dator och sedan associeras till produkten vid installation. Hur som helst krävs en lämplig JRE för en Eclipse-baserad produkt och produktinstallationsprogrammet måste spela en roll antingen i installationen av JRE:n eller sökandet efter och länkandet till en befintlig JRE.
Anta att en JRE ska installeras med produkten. En katalog som innehåller
JRE:n är en komponent i skriptet för att skapa installationsprogrammet. Ge katalogen
namnet <JRE>. Katalogen måste ha den katalogstruktur som är standard för JRE där
den körbara Java-filen finns i jre/bin/java.exe
och klassbiblioteket i jre/lib/rt.jar
under katalogen <JRE>.
Som referens: strukturen för katalogen ser ut på följande sätt:
<JRE>/
jre/
bin/
java.exe
lib/
rt.jar
Det finns fler filer (och underkataloger) i de här katalogerna. Det här är bara ett exempel så att du får en uppfattning om strukturen. Namn i kursiv stil är produktspecifika.
Den andra komponenten i skriptet för att skapa ett installationsprogram är en katalog, <product head
>,
som innehåller det produktspecifika körbara startverktyget och filer som inte är relaterade till Eclipse. Som referens: strukturen för katalogen ser ut på följande sätt (kursiv stil anger att filnamnet varierar mellan produkter):
<product head>/
Den tredje komponenten i skriptet för att skapa ett installationsprogram är en katalog, <
acmeproduct.exe
product
body
>,
som innehåller funktioner och insticksprogram som utvecklats för produkten. Som referens: strukturen för katalogen skulle se ut på följande sätt:
<product body>/
eclipse/
features/
com.example.acme.acmefeature_1.0.0/
feature.xml
com.example.acme.otherfeature_1.0.0/
feature.xml
plugins/
com.example.acme.acmefeature_1.0.0/
plugin.xml
about.ini
about.properties
about.mappings
plugin_customization.ini
splash.bmp
com.example.acme.otherfeature_1.0.0/
plugin.xml
about.ini
about.properties
about.mappings
com.example.acme.myplugin_1.0.0/
plugin.xml
myplugin.jar
com.example.acme.otherplugin_1.0.0/
plugin.xml
otherplugin.jar
Den fjärde komponenten i skriptet för att skapa ett installationsprogram är en katalog, <platform
>,
som innehåller funktioner och insticksprogram för själva Eclipse-plattformen och eventuella tredjepartsverktyg som ingår.
I katalogen ingår även det körbara standardstartverktyget för Eclipse, eclipse.exe
,
(med namnet eclipse
i Unix-operativmiljön), följeslagaren startup.jar
och eventuella andra Eclipse-plattformsfiler som måste finnas i rotkatalogen för installationen. Som referens: strukturen för katalogen skulle se ut på följande sätt:
<platform>
Det exakta innehållet i komponentkatalogerna <
eclipse/
eclipse.exe
startup.jar
features/
org.eclipse.platform_2.0.0/
org.eclipse.platform.win32_2.0.0/
org.eclipse.jdt_2.0.0/
org.eclipse.pde_2.0.0/
plugins/
org.eclipse.platform_2.0.0/
org.eclipse.core.runtime_2.0.0/
org.eclipse.core.boot_2.0.0/
org.eclipse.core.resources_2.0.0/
org.eclipse.ui_2.0.0/
org.eclipse.jdt_2.0.0/
org.eclipse.jdt.core_2.0.0/
org.eclipse.jdt.ui_2.0.0/
org.eclipse.pde_2.0.0/
org.eclipse.pde.core_2.0.0/
org.eclipse.pde.ui_2.0.0/
(fler org.eclipse.*-insticksprogramkataloger)
JRE
>, <product
head
>, <product body
>,
och <platform
> styr vilka filer som slutligen installeras i slutanvändarens dator.
De slutliga komponenterna i skriptet för att skapa ett installationsprogram är ID- och versionssträngarna för huvudfunktionen för produkten, till exempel "com.example.acme.acmefeature"
och "1.0.0
", och namnet på
den körbara filen för produkten, till exempel "acmeproduct
.exe
".
För produkter som det inte krävs någon separat körbar fil för utgörs den här komponenten av sökvägen tilldet körbara standardstartverktyget för Eclipse "eclipse/eclipse.exe
".
De här strängarna har en särskild betydelse för installationsprogrammet då de visas i fil- och katalognamn och i innehållet i markeringsfiler som skapas vid installationen.
Vid installation bör installationsprogrammet fungera enligt standardinställningarna (om du vill ha mer information följer du anvisningarna):
Om den plats som angavs i steg 5 är <install
>
kopierar installationsprogrammet alla filerna i katalogerna <JRE
>, <platform>,
<product
>
och <product plug-ins>
till <install
>.
Indatafil | Installerad fil |
<JRE>/* |
<install>/eclipse/* |
<product head>/* |
<install>/* |
<product body>/* |
<install>/* |
<platform>/* |
<install>/* |
Markeringsfilen som skapas i steg 8, <install>/eclipse/.eclipseproduct
,
används till att markera en katalog som en Eclipse-baserad produkt har
installerats i, främst för att utökningsinstallationsprogram ska hitta den. Den här markeringsfilen är en java.io.Properties-formatfil (ISO 8859-1-teckentabell med "\"-escape-sekvenser) som innehåller
följande information som identifierar produkten för användaren och särskiljer en Eclipse-baserad produkt från en annan:
name=Acme Visual Tools Pro
id=com.example.acme.acmefeature
version=1.0.0
Värdena för egenskaperna "id" och "version" är indata till skriptet för att skapa ett installationsprogram. Namnet på produkten antas vara känt och hårdkodat. (Produkter använder normalt inte den här markeringsfilen. Endast installationsprogram för produkter och utökningar skriver till eller läser den.)
I steg 6 krävs kontroll av en befintlig <install>/eclipse/.eclipseproduct
- eller
<install>/eclipse/.eclipseextension
-fil. Det går inte att
installera en produkt på exakt samma plats som en annan produkt eller utökning.
När du har installerat alla filer innehåller den översta nivån i strukturen för installationskatalogen följande filer och underkataloger (och eventuellt andra):
<install>/
Om ett produktinstallationsprogram efterfrågar licensinformation från användaren, till exempel namnet på den registrerade ägaren och licensnyckeln, bör den informationen infogas i "om"-dialogrutan för produkten (steg 10).
acmeproduct.exe
eclipse/
.eclipseproduct
eclipse.exe
startup.jar
features/
plugins/
jre/
Det görs genom att användarsvaren registreras i filen "about.mapping
"
i insticksprogrammet för huvudfunktionen. Till exempel i <install>/plugins/com.example.acme.acmefeature_1.0.0/about.mapping
.
Filen "about.mapping
" kan finnas i komponenten <product
head
> eller så kan det hända att den måste skapas av installationsprogrammet vid installationen.
Nycklarna är nummer. Värdet för "n"-nyckeln ersätts med
delsträngen "{n}
" i egenskapen "aboutText
".
Om till exempel en licensnyckel var fält nummer 0 bör en "about.mapping
"-fil skapas med till exempel följande rad "0=T42-24T-ME4U-U4ME
".
Obs!
Filen "about.mapping
" är en java.io.Properties-formatfil (ISO 8859-1-teckentabell med "\"-escape-sekvenser).
När originalteckentabellen skiljer sig från ISO 8859-1 vid installationen ansvarar installationsprogrammet för konvertering från originalteckentabell till Unicode och för att lägga till "\"-escape-sekvenser där det behövs. Escape-sekvenser krävs när strängarna innehåller specialtecken (till exempel "\") eller icke-latinska tecken. Om till exempel fält nummer 1 innehåller de 3 första bokstäverna i det grekiska alfabetet skulle det skrivas "1=\u03B1\u03B2\u03B3
".
I steg 12 startar startverktyget för produktinstallationsprogrammet den körbara filen för produkten, <install>/acmeproduct.exe
,
med specialalternativet -initialize [exakt information ej fastställd]. Eclipse-plattformen utför då all tidsödande förstagångsbearbetning och cachelagrar resultatet så att när användaren startar produkten visas den snabbt, klar att använda.
Vid avinstallation bör avinstallationsprogrammet fungera enligt standardinställningarna:
install
>
och alla filer i <install
>/eclipse/features
och <install
>/eclipse/plugins
inklusive de som placerats där av andra parter än det här installationsprogrammet (till exempel Eclipse-uppdateringshanteraren)När produkten avinstallerats ska de filer som placerats ut vid
installationen tas bort tillsammans med uppdaterade funktioner och insticksprogram som skapats av Eclipse-uppdateringshanteraren. Viktigt: Vid avinstallationen kan det finnas andra kataloger och filer i katalogen <install>
, särskilt <install>/eclipse/workspace/
,
<install>/eclipse/links/
och <install>/eclipse/configuration/
,
som innehåller viktiga data som inte får tas bort när produkten avinstalleras. Användaren måste kunna avinstallera och installera om en produkt på samma plats utan att viktiga data går förlorade.
När produkten redan installerats i användarens dator bör installationsprogrammet tillåta att en tjänstuppdatering eller versionsuppgradering tillämpas på den installerade produkten.
Vid installation bör installationsprogrammet fungera enligt standardinställningarna:
I steg 2 kan den installerade produkten kännas igen genom att det finns en "eclipse
"-katalog som direkt innehåller en fil med namnet ".eclipseproduct
".
Den överordnade katalogen till "eclipse
"-katalogen är installationskatalogen för en produkt, dvs. <install>/eclipse/.eclipseproduct
.
Den information som finns i markeringsfilen bör visas för användaren som kan kontrollera att rätt produkt uppdateras (det kan finnas flera Eclipse-baserade produkter i användarens dator).
Installationsprogrammet bör utföra kompatibilitetskontroller i steg 3 genom enkel mönstermatchning mot underkataloger i katalogen <install>/eclipse/features
. Till exempel om det finns en mapp som överensstämmer med "com.example.acme.otherfeature_1.0.1
"
skulle det visa att en viss tjänstuppdatering hade tillämpats på den installerade produkten.
I steg 7 kan installationsprogrammet ta bort eller ersätta någon av de filer som ursprungligen installerades och lägga till fler filer. Viktigt: Flera filer och kataloger, inklusive <install>/eclipse/workspace/
, <install>/eclipse/configuration
, kan
placeras på samma plats som installationen och innehålla viktiga datafiler som inte får tas bort när produkten uppgraderas.
I uppgraderingssituationer är sannolikt de flesta av filerna under<install>/eclipse/plugins/
desamma (detsamma gäller för <install>/eclipse/features/
).
<install>/eclipse/plugins/
ger möjlighet till optimering eftersom underkatalognamnet, där versionsnumret för insticksprogrammet (eller fragmentet) ingår, ändras endast om någon av filerna under det ändras. Med andra ord, behöver du inte röra några av filerna i <install>/eclipse/plugins/org.eclipse.ui_2.0.0
/
om den här underkatalogen också finns efter uppgraderingen. Om någon av insticksprogramfilerna skulle ändras revideras versionsnumret för insticksprogrammet vilket innebär att filerna för det uppgraderade insticksprogrammet installeras i den parallella katalogen <install>/eclipse/plugins/org.eclipse.ui_2.0.1
/.
JRE förväntas finnas i <install>/eclipse/jre/bin/javaw.exe
.
Om den finns någon annanstans bör den absoluta sökvägen anges med hjälp av alternativet -vm
på kommandoraden, till exempel -vm C:\j2jre1.3.0\jre\bin\javaw.exe
.
I det fallet bör installationsprogrammet lägga till det alternativet på kommandoraden till den skrivbordsgenväg den skapar.
Med utökning menar vi en separat installerbar uppsättning funktioner och tillhörande insticksprogram som kan associeras till, och användas från, en eller flera Eclipse-baserade produkter som installerats i samma dator. Till skillnad från en produkt kan en utökning inte användas självständigt. I en utökning ingår inte en körbar produktfil, Eclipse-plattformen eller en JRE.
Tänk dig att en utökning består av en enda funktion (utan att fästa särskild vikt vid just den funktionen). Den första komponenten i skriptet för att skapa ett installationsprogram är en katalog, <extension
>,
som innehåller funktioner och insticksprogram för programmet. Vi antar att en utökning inte har några filer som är relaterade till Eclipse. Om den hade det skulle de placeras i <extension>/
och inte i <extension>/eclipse/
. Som referens: strukturen för katalogen skulle se ut på följande sätt:
<extension>/
eclipse/
features/
com.example.wiley.anvilfeature_1.0.0/
feature.xml
plugins/
com.example.wiley.anvilfeature_1.0.0/
plugin.xml
about.ini
about.properties
about.mappings
com.example.wiley.mainplugin_1.0.0/
com.example.wiley.otherplugin_1.0.0/
Det exakta innehållet i komponentkatalogerna <extension
> styr vilka filer som slutligen installeras i slutanvändarens dator.
De slutliga komponenterna i skriptet för att skapa ett installationsprogram är ID- och versionssträngarna för utökningens funktion, till exempel "com.example.wiley.anvil
"
och "1.0.0
". De här strängarna har en särskild betydelse för installationsprogrammet då de visas i fil- och katalognamn och i innehållet i markeringsfiler som skapas vid installationen.
Ett installationsprogram för en utökning liknar i det mesta ett installationsprogram för en produkt. Nedan beskrivs de områden där det finns skillnader:
Vid installation fungerar installationsprogrammet enligt standardinställningarna:
Om den plats som angavs i steg 5 är <install
> kopierar installationsprogrammet alla filerna i katalogerna <extension>
till <install
> i steg 11.
Indatafil | Installerad fil |
<extension>/* |
<install>/* |
I steg 7 kan Eclipse-produkter vara kandidater. Eclipse-baserade produkter kan kännas igen genom att det finns en fil av typen <product install>/eclipse/.eclipseproduct
. Användaren bör kunna begära en begränsad disksökning för installerade produkter (en "sök efter installerade produkter"-knapp) eller bläddra till en katalog som innehåller en produkt (dvs. en "bläddra"-knapp).
Installationsprogrammet bör utföra kompatibilitetskontroller i steg 8 genom enkel mönstermatchning mot underkataloger i katalogen <product install>/eclipse/features
. Till exempel om det finns en mapp som överensstämmer med "org.eclipse.jdt_2.*
" innebär det att JDT ingår i den installerade produkten.
Markeringsfilen som skapas i steg 10, <install>/eclipse/.eclipseextension
,
används till att markera en katalog som en Eclipse-baserad utökning har
installerats i, främst för att utökningsinstallationsprogram ska hitta den (analogt med markeringsfilen .eclipseproduct
för en produkt). Den här markeringsfilen är en java.io.Properties-formatfil (ISO 8859-1-teckentabell med "\"-escape-sekvenser) som innehåller
följande information som identifierar utökningen för användaren och särskiljer en Eclipse-baserad utökningen från en annan:
name=Wiley Anvil Enterprise Edition
id=com.example.wiley.anvilfeature
version=1.0.0
Värdena för egenskaperna "id" och "version" är indata till skriptet för att skapa ett installationsprogram. Namnet på utökningen antas vara känt och hårdkodat. (Produkter använder normalt inte den här markeringsfilen. Endast installationsprogram för produkter och utökningar skriver till eller läser den.)
När du har installerat alla filer innehåller den översta nivån i strukturen för installationskatalogen följande filer och underkataloger:
<install>/
eclipse/
.eclipseextension
features/
plugins/
Den enda betydande skillnaden jämfört med ett produktinstallationsprogram är att ett utökningsinstallationsprogram även skapar länkfiler i andra Eclipse-baserade produkter som redan installerats i användarens dator. (Användaren behöver då inte skapa associationer manuellt för den nya utökningen från varje produkt med hjälp av Eclipse-uppdateringshanteraren.)
Den länkfil som skapas i steg 14 är <product install>/eclipse/links/com.example.wiley.anvilfeature.link
;
dvs. att filen har samma namn som funktionskatalogen för utökningen minus versionsnummersuffixet. En länkfil är en java.io.Properties-formatfil (ISO 8859-1-teckentabell med "\"-escape-sekvenser).
Nyckeln är "sökväg" och värdet är den absoluta sökvägen för den installerade
utökningen <install>
. En post kan till exempel se ut så här "path=C:\\Program
Files\\Wiley\\Anvil
".
Installationsprogrammet ansvarar för konvertering
från originalteckentabell till Unicode och för att lägga till "\"-escape-sekvenser där det behövs. Escape-sekvenser krävs vanligen eftersom <install>
ofta innehåller specialtecken (till exempel "\")
och katalognamn med icke-latinska tecken. Produkten läser
länkfiler när den startas. Installationsprogrammet registrerar de länkfiler det skapar så att det går att hitta dem när utökningen uppdateras eller avinstalleras.
Vid avinstallation bör avinstallationsprogrammet fungera enligt standardinställningarna:
install
>
och alla filer i <install
>/eclipse/features
och <install
>/eclipse/plugins
inklusive de som placerats där av andra parter än det här installationsprogrammet (till exempel Eclipse-uppdateringshanteraren)När en utökning avinstalleras bör alla insticksprograms- och funktionsfiler tas bort. Det finns inga viktiga datafiler som måste finnas kvar i de här underkatalogerna. Det gör det möjligt för användaren att avinstallera en utökning helt och hållet, inklusive uppdateringar som använts av Eclipse-uppdateringshanteraren.
När utökningen redan installerats i användarens dator bör installationsprogrammet tillåta att en tjänstuppdatering eller versionsuppgradering tillämpas på den installerade utökningen.
Vid installation bör installationsprogrammet fungera enligt standardinställningarna:
I steg 2 kan den installerade utökningen kännas igen genom att det finns en "eclipse
"-katalog som direkt innehåller en fil med namnet ".eclipseextension
".
Den överordnade katalogen till "eclipse
"-katalogen är installationskatalogen för en utökning, dvs. <install>/eclipse/.eclipseextension
.
Den information som finns i markeringsfilen bör visas för användaren som kan kontrollera att rätt utökning uppdateras (det kan finnas flera Eclipse-baserade utökningar i användarens dator).
I steg 7 bör installationsprogrammet inte ta bort eller skriva över några av de filer som ursprungligen installerades utan endast lägga till filerna för nya
versioner av funktioner och insticksprogram och möjligen skriva om markeringsfilen <install>/eclipse/.eclipseextension
. Om gamla versioner finns kvar kan användaren välja att avbryta uppdateringen. Precis som vid uppgradering av en produktinstallation behöver du inte röra några av filerna i <install>/eclipse/plugins/com.example.wiley.otherplugin_1.0.0
/
om den här underkatalogen också finns efter uppgraderingen. Om någon av insticksprogramfilerna skulle ändras revideras versionsnumret för insticksprogrammet vilket innebär att filerna för det uppgraderade insticksprogrammet installeras i den parallella katalogen <install>/eclipse/plugins/com.example.wiley.otherplugin_1.0.1
/.