Ange kompileringsmiljön

Som standard kompileras paketen med den JRE som används för att köra bygget och med käll- och målnivåer angivna som 1.3 och 1.2.

PDE-byggfunktionen kan konfigurera den JRE som används vid kompileringen på per-paket-basis.  För att dra nytta av det behöver du först ange vilka JREer som är tillgängliga för PDE-byggfunktionen.  I filen build.properties för byggkonfigurationen anger du egenskaper för att peka på alla installerade JREer.  I mallen build.properties i org.eclipse.pde.build/templates/headless-build finns en lista över utkommenterade miljöer.  Utkommentera helt enkelt de egenskaper som du har JREer för och ange värdet som den uppsättning jar-filer som hör till boot-klassökvägen.  Om du t.ex. anger egenskapen:

J2SE-1.5=C:/Java/1.5/jre/lib/rt.jar;C:/Java/1.5/jre/lib/jsse.jar

kompileras paket som kräver Java 1.5 mot rt.jar och jsse.jar.  Namnen på egenskaperna bör stämma överens med namnen på de miljöer som PDE-byggfunktionen känner till.   PDE-byggfunktionen anger automatiskt käll- och målnivåerna för varje miljö.  Miljöerna som PDE-byggfunktionen känner till och deras associerade käll-/målnivåer är följande:

Miljö
Källa
Mål
CDC-1.0/Foundation-1.0
1.3
1.1
CDC-1.1/Foundation-1.1
1.3
1.2
OSGi/Minimum-1.0
1.3
1.1
OSGi/Minimum-1.1
1.3
1.2
JRE-1.1
1.1
1.1
J2SE-1.2
1.2
1.1
J2SE-1.3
1.3
1.1
J2SE-1.4
1.3
1.2
J2SE-1.5
1.5
1.5
JavaSE-1.6
1.6
1.6
PersonalJava-1.1
1.1
1.1
PersonalJava-1.2
1.1
1.1
CDC-1.0/PersonalBasis-1.0
1.3
1.1
CDC-1.0/PersonalJava-1.0
1.3
1.1
CDC-1.1/PersonalBasis-1.1
1.3
1.2
CDC-1.1/PersonalJava-1.1
1.3
1.2

Välja miljö för paketet

Det finns två inställningar som påverkar den miljö som används för att kompilera paketet.  Den ena är manifestrubriken Bundle-RequiredExecutionEnvironment.  Rubriken är en lista över miljöer som paketet kan köras i.  Endast metoder som finns i rätt delmängd av de angivna miljöerna bör användas för paketet.  Det kan rekommenderas att kompileringsmiljön så långt som möjligt överensstämmer med körningsmiljön.

Den andra inställningen är egenskapen jre.compilation.profile från paketets build.properties-fil.  Värdet för egenskapen är den miljö som rekommenderas för kompileringen av paketet om listan Bundle-RequiredExecutionEnvironment inte är tillräcklig.

De här två inställningarna ger tillsammans en lista över miljöer, jre.compilation.profile först, och sedan miljöerna från Bundle-RequiredExecutionEnvironment.  Den första miljön på listan som är tillgänglig i byggkonfigurationen (se avsnittet ovan) kommer att användas för kompileringen av paketet.

Exempel:
<buildDirectory>/plugins/bundleA/
META-INF/manifest.mf: Bundle-RequiredExecutionEnvironment: CDC-1.0/Foundation-1.0, J2SE-1.3
build.properties:  jre.compilation.profile=J2SE-1.4

<buildConfiguration>/
build.properties:  J2SE-1.3=C:/Java1.3/jre/lib/rt.jar;C:/Java1.3/jre/lib/i18n.jar
J2SE-1.4=C:/Java1.4/jre/lib/rt.jar;C:/Java1.4/jre/lib/jsse.jar

I konfigurationen ovan är listan över miljöer som övervägs (i tur och ordning): J2SE-1.4,  CDC-1.0/Foundation-1.0, J2SE-1.3.  Paketet kan köras i CDC/Foundation och J2SE-1.3, men av någon anledning  bör det kompileras med J2SE-1.4.  I det här fallet anges J2SE-1.4 i byggkonfigurationen och kommer först i listan över miljöer, så det används för att kompilera paketet.  De käll- och målnivåer som används i det här fallet är 1.3 och 1.2.  Om byggkonfigurationen istället endast definierat J2SE-1.3 och inte J2SE-1.4, skulle J2SE-1.3 vara den enda miljön på listan som en JRE är tillgänglig för, och därför användas för kompileringen av paketet.  I det fallet skulle käll- och målnivåerna vara 1.3 och 1.1.

Ange kompileringsvärden explicit

Om användningen av miljöerna enligt beskrivningen ovan av någon anledning inte resulterar i önskad konfiguration är det möjligt att explicit ange de inställningar som krävs för paketet.  Om du t.ex. har ett paket som använder J2SE-1.4 med säkerställanden (asserts) behöver käll- och målnivåerna vara 1.4 istället för 1.3 och 1.2 som är standard.

För att ange Java-käll- och -målnivåerna explicit ska egenskaperna javacSource och javacTarget anges för paketet i dess build.properties-fil.  De här egenskaperna åsidosätter de värden som härletts från miljöinställningarna.

På samma sätt åsidosätter inställningen av egenskapen bootClasspath i paketets build.properties-fil den uppsättnings jar-filer som paketet kompileras mot.