Configuração de Construção
O mecanismo de construção é conduzido por uma configuração de construção. A
configuração de construção para um plug-in, fragmento ou recurso individual
está localizada em um arquivo build.properties do elemento correspondente.
Os assistentes para criação de projetos PDE geram o arquivo build.properties quando
os projetos de plug-in são criados. O arquivo contém informações sobre a compilação das pastas de origem em
JARs. Essas informações podem ser atualizadas indiretamente, na página de Tempo de Execução do
editor de manifest. Também podem ser modificadas diretamente, utilizando o editor apropriado.
O PDE fornece um editor simples para build.properties que possui exibições de formulário e de origem.
O próprio arquivo segue o formato de propriedades Java. É necessário fornecer um número de chaves e seus valores correspondentes. Os valores múltiplos são separados utilizando uma vírgula como delimitador.
Propriedades comuns
- bin.includes - lista os arquivos que serão incluídos na versão binária do plug-in que está sendo construído;
- bin.excludes - lista os arquivos a serem excluídos da construção binária;
- qualifier - quando o número da versão do elemento termina com .qualifier isso indica por qual valor ".qualifier" deve ser substituído. O valor da propriedade pode ser context, <value> ou none.
O contexto irá gerar uma data de acordo com a data do sistema ou utilizar marcações CVS quando a construção for automatizada. O valor é um valor real. Nada removerá ".qualificador". Se a propriedade for omitida, o contexto será utilizado.
- custom=true - indica que o script de construção é feito manualmente em oposição à geração automática. Portanto, nenhum outro valor é consultado.
Propriedades Específicas do Plug-in
- source.<library> - lista as pastas de origem a serem compiladas (por exemplo, source.xyz.jar=src/, src-ant/).
Se a biblioteca estiver especificada no plugin.xml ou no manifest.mf, o valor deverá corresponder a ele;
- output.<library> - lista a pasta de saída que está recebendo o resultado da compilação;
- source.<library> - lista os arquivos que não devem ser copiados na biblioteca pelo compilador;
- extra.<library> - caminhos de classe extra utilizados para executar a construção automatizada. Os caminhos de classe podem ser caminhos relativos ou
URLs de plataforma para plug-ins e fragmentos de seu ambiente de desenvolvimento (por exemplo, ../someplugin/xyz.jar, platform:/plugins/org.apache.ant/ant.jar).
As urls da plataforma são recomendadas sobre caminhos relativos;
- manifest.<biblioteca> - indica o arquivo que será utilizado como manifesto para a biblioteca. O arquivo deve estar localizado em uma das pastas de origem
que estão sendo utilizadas como entrada do jar.
- src.includes - lista os arquivos a serem incluídos na construção de origem;
- src.excludes - lista os arquivos a serem excluídos da construção de origem;
- jars.extra.classpath - (desaprovado) mesmo efeito que extra.<library> exceto se as entradas forem aplicadas a todas as bibliotecas;
- jars.compile.order - define a ordem na qual os jars devem ser compilados (no caso de haver várias bibliotecas).
Os valores definidos para essas chaves terminadas com "inclui" ou "exclui" são expressos como "padrões" Ant. Os formatos padrão fornecem os resultados esperados. Por exemplo, "*.jar"
indica todos os arquivos jar no diretório no nível superior. Os padrões não são profundos, por padrão. Por exemplo, se você desejar
descrever todos os arquivos Java, deverá utilizar o padrão "**/*.java".
O padrão "**" corresponde qualquer número de níveis de diretório.
De modo semelhante, para descrever as subárvores inteiras, utilize "xyz/".
Propriedades Específicas do Recurso
- root - lista os arquivos e pastas que devem ser incluídos na raiz do produto. Os diferentes valores suportados são:
- <folderName> - um caminho relativo para uma pasta a ser copiada;
- file:<fileName> - um caminho relativo para um arquivo a ser copiado;
- absolute:<folderName> - um caminho absoluto para uma pasta a ser copiada;
- absolute:file:<fileName> - um caminho absoluto para um arquivo a ser copiado;
- root.<config> - lista os arquivos e pastas que devem ser incluídos na raiz do produto quando ele é construído para a configuração especificada. config é composto de três (3) segmentos de uma configuração separada por um ponto;
- root.permissions.<permissionValue> - lista os arquivos e pastas para chmod para o valor fornecido. A referência às pastas deve terminar com um '/';
- root.permissions.<config>.<permissionValue> - lista os arquivos e pastas para chmod para o valor fornecido para uma configuração específica. A referência às pastas deve terminar com um '/';
- root.link - lista por pares (separados por vírgula) os arquivos e pastas que precisam ser vinculados simbolicamente. A primeira entrada indica a origem (destino na terminologia unix) e a segunda entrada o nome do link;
- root.link.<config> - uma lista separada por vírgula de pares de arquivos e pastas que precisam ser vinculados simbolicamente para uma configuração específica. A primeira entrada indica a origem (destino na terminologia unix) e a segunda entrada o nome do link;
- generate.feature@<featureId> - indica que o recurso de origem featureId será o recurso de origem para o recurso indicado como valor desta propriedade.
Os valores listados após a primeira vírgula indicam os elementos a serem recuperados a partir do repositório;
- generate.plugin@<pluginId> - indica que o plug-in de origem pluginId será o plug-in de origem para o valor indicado dessa propriedade.
Os exemplos a seguir foram extraídos do build.properties do recurso org.eclipse.platform.
bin.includes=epl-v10.html,eclipse_update_120.jpg,feature.xml,feature.properties,license.html
root=rootfiles,file:../../plugins/org.eclipse.platform/startup.jar,configuration/
root.permissions.755=eclipse
root.linux.motif.x86=../../plugins/platform-launcher/bin/linux/motif,linux.motif
root.linux.motif.x86.link=libXm.so.2.1,libXm.so.2,libXm.so.2.1,libXm.so
root.linux.motif.x86.permissions.755=*.so*