Definir Ambiente de Compilação

Por predefinição, os agrupamentos serão compilados com os JRE a serem utilizados para executar a construção e com os níveis de origem e de destino definidos para as versões 1.3 e 1.2.

A construção de PDE tem a capacidade de configurar o JRE utilizado durante a compilação numa base por agrupamento. Para tirar partido deste procedimento, terá de, em primeiro lugar, indicar à construção de PDE quais os JREs que se estão disponíveis. No ficheiro de configuração da construção build.properties, defina as propriedades para que indiquem os JREs instalados. O modelo build.properties facultado em org.eclipse.pde.build/templates/headless-build contém uma lista de ambientes que são tornados comentário.  Anule simplesmente o comentário das propriedades para as quais contém JREs e defina o valor para que este seja o conjunto de jars pertencente ao caminho de classe de início.  Por exemplo, ao definir a propriedade:

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

irá compilar agrupamentos que requerem o java 1.5 em vez do rt.jar e do jsse.jar. Os nomes das propriedades deverão corresponder aos nomes dos ambientes reconhecidos pela Construção de PDE.   A Construção de PDE irá definir automaticamente os níveis de origem e de destino de cada ambiente. Os ambientes reconhecidos pelas Construções de PDE e os respectivos níveis de origem/destino associados são os seguintes:

Ambiente
Origem
Destino
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

Seleccionar o Ambiente para o seu Agrupamento

Existem duas definições que afectam o ambiente utilizado para compilar o seu agrupamento.  Um deles é o cabeçalho de manifesto Bundle-RequiredExecutionEnvironment.  Este cabeçalho consiste numa lista de ambientes nos quais o seu agrupamento pode ser executado. O seu agrupamento deverá apenas utilizar métodos que estejam no subconjunto próprio de todos os ambientes enumerados.  Recomenda-se que o ambiente de compilação corresponda o mais possível ao ambiente de execução.

A segunda definição consiste na propriedade jre.compilation.profile do seu ficheiro build.properties de agrupamento. O valor desta propriedade deverá ser o ambiente preferido para a compilação deste agrupamento, caso a lista Bundle-RequiredExecutionEnvironment não seja adequada.

Estas duas definições juntas formam uma lista de ambientes, estando colocadas em primeiro lugar os jre.compilation.profile e em seguida os ambientes de Bundle-RequiredExecutionEnvironment. O primeiro ambiente apresentado na lista que esteja disponível na sua configuração de construção (consulte secção acima) será utilizado para compilar o seu agrupamento.

Exemplo:
<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

Na configuração apresentada acima, a lista de ambientes considerados (por ordem) é: J2SE-1.4,  CDC-1.0/Foundation-1.0, J2SE-1.3.  O agrupamento pode ser executado em CDC/Foundation e J2SE-1.3, mas, por algum motivo, deverá ser compilado com o J2SE-1.4. Neste caso, o J2SE-1.4 é definido na configuração de construção e é apresentado na lista em primeiro lugar, sendo, por conseguinte, utilizado para compilar o agrupamento.  Os níveis de origem e de destino utilizados neste caso são 1.3 e 1.2.  Se, por outro lado, a configuração de construção tiver definido apenas o J2SE-1.3 e não o J2SE-1.4, então o J2SE-1.3 deverá ser o único ambiente da lista para o qual está disponível um JRE, para que seja utilizado para compilar o agrupamento. Nesse caso, os níveis de origem e de destino seriam 1.3 e 1.1.

Valores de Compilação Explícita da Definição

Se, por algum motivo, a utilização dos ambientes apresentada anteriormente não levar à configuração desejada, um agrupamento pode enumerar explicitamente as definições requeridas. Por exemplo, se tiver um agrupamento que utiliza o J2SE-1.4 com asserções, os níveis de origem e de destino terão de ser 1.4, em vez dos níveis predefinidos 1.3 e 1.2.

Para definir explicitamente os níveis de origem e de destino de java, o agrupamento deverá definir as propriedades javacSource e javacTarget no respectivo ficheiro build.properties.  Estas propriedades irão substituir os valores que derivam das definições de ambiente.

De modo semelhante, a definição da propriedade bootClasspath no ficheiro build.properties do agrupamento irá substituir o conjunto de jars com os quais o agrupamento foi compilado.