Configurando o Ambiente de Compilação

Por padrão, seus pacotes configuráveis serão compilados com qualquer JRE que estiver sendo utilizado para executar o build e com os níveis de origem e de destino configurados para 1.3 e 1.2.

O build PDE é capaz de configurar o JRE utilizado durante a compilação por pacote configurável.  Para aproveitar essa capacidade, o primeiro procedimento é informar ao build PDE quais JREs estão disponíveis.  Em seu arquivo build.properties da configuração do build, configure as propriedades para apontarem para cada JRE instalado.  O modelo build.properties fornecido no org.eclipse.pde.build/templates/headless-build possui uma lista de ambientes com indicador de comentário.  Simplesmente remova o indicador de comentário das propriedades para as quais você possui JREs e configure o valor para ser o conjunto de jars que pertencem ao caminho de classe de inicialização.  Por exemplo, a configuração da propriedade:

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

compilará os pacotes configuráveis que requerem java 1.5 para o rt.jar e jsse.jar.  Os nomes das propriedades devem corresponder aos nomes dos ambientes que o Build PDE conhece.   O Build PDE configurará automaticamente os níveis de origem e de destino para cada ambiente.  Os ambientes que o build PDE conhece e seus 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/Minímo-1.0
1.3
1.1
OSGi/Minímo-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

Escolhendo o Ambiente para seu Pacote Configurável

Existem duas configurações que afetam o ambiente utilizado para compilar seu pacote configurável.  Uma delas é o cabeçalho de manifesto Bundle-RequiredExecutionEnvironment.  Esse cabeçalho é uma lista de ambientes nos quais seu pacote configurável pode executar.  O pacote configurável deve utilizar apenas métodos que estejam no subconjunto apropriado de todos os ambientes listados.  É recomendável que seu ambiente de compilação corresponda o máximo possível ao ambiente de tempo de execução.

A segunda configuração é a propriedade jre.compilation.profile do arquivo build.properties de seu pacote configurável.  O valor dessa propriedade deve ser o ambiente preferido para compilar esse pacote configurável se a lista Bundle-RequiredExecutionEnvironment não for adequada.

Essas duas configurações formam juntas uma lista de ambientes, primeiramente o jre.compilation.profile e depois os ambientes de Bundle-RequiredExecutionEnvironment.  O primeiro ambiente nessa lista que estiver disponível em sua configuração de build (consulte seção acima) será utilizado para compilar seu pacote configurável.

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 acima, a lista de ambientes considerados (em ordem) será: J2SE-1.4,  CDC-1.0/Foundation-1.0, J2SE-1.3.  O pacote configurável pode ser executado no CDC/Foundation e J2SE-1.3, mas por algum motivo,  ele deve ser compilado com o J2SE-1.4.  Neste caso, o J2SE-1.4 é definido na configuração do build e aparece em primeiro lugar na lista de ambientes, portanto é utilizado para compilar o pacote configurável.  Os níveis de origem e de destino utilizados neste caso são 1.3 e 1.2.  Se, em vez disso, a configuração do build definisse apenas J2SE-1.3 e não J2SE-1.4, o J2SE-1.3 seria o único ambiente na lista para o qual um JRE estaria disponível, portanto seria utilizado para compilar o pacote configurável.  Nesse caso, os níveis de origem e de destino seriam 1.3 e 1.1.

Configurando Explicitamente os Valores de Compilação

Se, por algum motivo, a utilização dos ambientes conforme descrito acima não resultar na configuração desejada, um pacote configurável poderá listar explicitamente as configurações requeridas.  Por exemplo, se você tiver um pacote configurável que utiliza o J2SE-1.4 com asserções, os níveis de origem e de destino precisarão ser 1.4, em vez do padrão 1.3 e 1.2.

Para configurar explicitamente os níveis de origem e de destino java, o pacote configurável deve configurar as propriedades javacSource e javacTarget em seu arquivo build.properties.  Essas propriedades substituirão os valores derivados das configurações do ambiente.

De modo semelhante, configurar a propriedade bootClasspath no arquivo build.properties do pacote substituirá o conjunto de jars para o qual o pacote configurável está compilado.