Indstil kompileringsmiljø

Bundterne kompileres som standard med det JRE, der benyttes til at udføre bygningen, og med mål- og kildeniveauerne indstillet til 1.3 og 1.2.

PDE Build kan konfigurere, hvilket JRE der benyttes ved kompileringen, på de enkelte bundter. For at udnytte dette skal du først fortælle PDE Build, hvilke JRE'er der er tilgængelige. Angiv egenskaber til at pege på hvert af de installerede JRE'er i byggekonfigurationsfilen build.properties. Skabelonen build.properties, som findes i org.eclipse.pde.build/templates/headless-build, indeholder en liste over udkommenterede miljøer. Fjern kommentaren for de egenskaber, som du har JRE'er for, og angiv den værdi, der skal indstilles for de jar-filer, som hører til bootclasspath. Hvis du f.eks. indstiller egenskaben:

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

kompileres bundter, der kræver java 1.5, mod rt.jar og jsse.jar. Navnene på egenskaberne skal matche navnene på de miljøer, som PDE Build kender.   PDE Build indstiller automatisk kilde- og målniveauerne for hvert miljø. De miljøer, som PDE Build kender, og de tilknyttede kilde- og målniveauer, er:

Miljø
Kilde
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ælg miljø til bundtet

Der er to indstillinger, som påvirker, hvilket miljø der benyttes til at kompilere bundtet. Den ene er manifestheaderen Bundle-RequiredExecutionEnvironment.  Denne header er en liste over miljøer, som bundtet kan udføres på. Bundtet bør kun benytte metoder, der findes i den rigtige delmængde af alle de viste miljøer. Kompileringsmiljøet bør matche runtime-miljøet så godt som muligt.

Den anden indstilling er egenskaben jre.compilation.profile fra bundtets build.properties-fil. Værdien af denne egenskab skal være det foretrukne miljø til kompilering af bundtet, hvis listen Bundle-RequiredExecutionEnvironment ikke er tilstrækkelig.

Sammen udgør disse to indstillinger en liste over miljøer, først jre.compilation.profile og derefter miljøerne fra Bundle-RequiredExecutionEnvironment. Det første miljø på listen, der er tilgængeligt i byggekonfigurationen (se ovenstående afsnit), benyttes til at kompilere bundtet.

Eksempel:
<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 ovenstående konfiguration ser listen over miljøer, der overvejes (i rækkefølge), ud som følger: J2SE-1.4,  CDC-1.0/Foundation-1.0, J2SE-1.3. Bundtet kan udføres på CDC/Foundation og J2SE-1.3, men af en eller anden årsag skal det kompileres med J2SE-1.4. I dette tilfælde angives J2SE-1.4 i byggekonfigurationen og placeres først på listen over miljøer, så det benyttes til at kompilere bundtet. De benyttede kilde- og målniveauer i dette tilfælde er 1.3 og 1.2. Hvis byggekonfigurationen i stedet kun angiver J2SE-1.3, men ikke J2SE-1.4, ville J2SE-1.3 være det eneste miljø på listen over et tilgængeligt JRE, hvorfor det benyttes til at kompilere bundtet. I så fald ville niveauerne være 1.3 og 1.1.

Angiv kompileringsniveauer eksplicit

Hvis ovenstående miljøer af en eller anden årsag ikke giver den ønskede konfiguration, er det muligt eksplicit at angive de nødvendige indstillinger for et bundt. Hvis du f.eks. har et bundt, der benytter J2SE-1.4 med antagelser, skulle kilde- og målniveauerne være 1.4 i stedet for standardværdierne 1.3 og 1.2.

Hvis du vil angive java-kilde- og målniveauerne eksplicit, skal bundtet indstille egenskaberne javacSource og javacTarget i filen build.properties.Egenskaberne tilsidesætter værdierne i miljøindstillingerne.

Hvis egenskaben bootClasspath indstilles i bundtets build.properties-fil, tilsidesætter det på samme måde, hvilket sæt af jar-filer bundtet kompileres imod.