Empacotando Componentes do Eclipse

Os componentes do Eclipse são entregues como arquivos de archive. Cada archive contém uma coleta de recursos e plug-ins. Os archives contêm normalmente as funções que um componente específico precisa oferecer. Este é o caso, muitas vezes, quando os consumidores precisam de mais de um componente e/ou precisam apenas de partes de alguns componentes. Sem assistência, os consumidores teriam que buscar manualmente os archives contendo o superconjunto da função que eles precisam e, então, extrair manualmente os recursos e plug-ins necessários. Esse pode ser um processo trabalhoso e propenso a erros.

Felizmente, o PDE contém um mecanismo orientado a lotes que pode ajudar, o empacotador. Resumindo, o empacotador utiliza como entrada uma lista de archives contendo recursos e uma lista de recursos interessantes. Em seguida, ele busca os zips, extrai os recursos (e seus plug-ins) e reempacota-os em um zip de saída.

Início Rápido

A seguir, um conjunto de etapas básicas para iniciar o empacotador.  É recomendável construir pacotes *nix em uma máquina *nix para assegurar que as permissões de arquivo sejam preservadas.

  1. Crie um diretório de configuração de pacote e copie nele os arquivos de modelo (packager.properties, packaging.properties e customTargets.xml) a partir de org.eclipse.pde.build/templates/packager.
  2. Edite os arquivos packager.properties copiados e configure as seguintes propriedades:
  3. Obtenha os arquivos de mapeamento do empacotador.  As seguintes propriedades controlam o download dos arquivos de mapeamento:
    O script do empacotador concatenará todos os arquivos *.map localizados em ${downloadDirectory}. Para fazer download de mais de um arquivo de mapeamento ou buscá-los a partir do CVS, edite o arquivo customTargets.xml e altere o destino de getMapFiles.
  4. Execute o empacotador utilizando o seguinte comando:
  5. java -jar <instalação do eclipse>/startup.jar -application org.eclipse.ant.core.antRunner 
    -buildfile <<instalação do eclipse>/plugins/org.eclipse.pde.build_<versão>/scripts/package.xml>
    -DpackagingInfo=<caminho para seu diretório de configuração do pacote>

Formato do Arquivo de Mapeamento do Empacotador

Os arquivos de mapeamento do empacotador são utilizados para descrever os diversos archives, seus conteúdos e onde é possível fazer download deles.  Eles são semelhantes aos arquivos de mapeamento utilizados no processo de build para buscar pacotes configuráveis dos repositórios.  O formato de uma entrada de arquivo de mapeamento do empacotador é o seguinte:
archiveName = url | [configList] | [directory] | contentDescription | componentName

Observe que configList e directory são opcionais, é importante que o número apropriado de separadores "|" ainda sejam utilizado.
Exemplos:
eclipse-SDK-3.1-win32.zip=http://download.eclipse.org/downloads/drops/R-3.1-200506271435/ | win32,win32,x86 | | sdk | eclipse
eclipse-PDE-3.1.zip=http://download.eclipse.org/downloads/drops/R-3.1-200506271435/ | | | runtime | pde

Propriedades de Configuração do Empacotador

As seguintes propriedades podem ser configuradas no arquivo packager.properties de configuração do empacotador:
baseDirectory
O diretório no qual ocorrerá todo o empacotamento
workingDirectory
O diretório no qual os scripts serão gerados.  O valor no modelo é ${baseDirectory}/workingPlace
downloadDirectory
A pasta na qual os archives serão transferidos por download.  O valor no modelo é ${baseDirectory}/toPackage
tempDirectory
A pasta na qual os archives serão extraídos.  O valor no modelo é ${baseDirectory}/temp
featurePaths
O nome da raiz dos archives transferidos por download.  O valor no modelo é eclipse.
featureList
Uma lista separada por vírgula dos IDs de recurso que você deseja reempacotar.
componentFilter
Uma lista separada por vírgula dos componentes a partir dos quais os recursos em featureList podem ser localizados.  Isso filtra os archives disponíveis e permite que o empacotador otimize o conjunto de arquivos transferidos por download.
contentFilter
Uma lista separada por vírgula de tipos de conteúdo para busca.  Isso filtra o conjunto de archives disponíveis e permite que o empacotador otimize o conjunto de arquivos transferidos por download.
config
Uma lista separada por "&" de configurações (triplos separados por vírgula de sistema operacional, sistema de janelas, arquitetura) para reempacotamento.  (Exemplo: win32, win32, x86 & linux, gtk, x86)
archivesFormat
Os formatos dos archives.  Uma lista separada por "&" de configuração - formato.  (Exemplo: win32, win32, x86 - antZip & linux, gtk, ppc - tar).  Se nenhum formato de archive for especificado para uma determinada configuração, o formato padrão será antZip.
zipargs
Argumentos extras a serem transmitidos ao zip
unzipargs
Argumentos extras a serem transmitidos ao unzip
archivePrefix
O prefixo do(s) archive(s) resultante(s)
collectingFolder
O nome da pasta raiz do archive resultante.
buildId
Controla o ID da construção no nome padrão do archive.
buildType
Tipo do build, utilizado ao nomear a saída do build.  Normalmente um destes: I, N, M, S, ...
buildLabel
Rótulo para o build.  O valor do modelo é ${buildType}.${buildId}
archiveNamePrefix
Controle o nome do archive resultante.  O valor padrão é ${buildId}
packagingProperties
Um caminho relativo para o arquivo que contém as propriedades que empacotam os arquivos raiz.  Por padrão, isso aponta para packaging.properties.
deltaPack
Indica se o pacote delta deve, ou não, ser gerado.  Isso excluirá partes independentes da plataforma e agrupará todas as configurações em um archive.

Empacotando Arquivos Raiz

No arquivo packager.properties de configuração do empacotador, a propriedade packagingProperties aponta para um arquivo de propriedades que especifica os arquivos raiz que precisam ser empacotados.  Por padrão, este é o arquivo packaging.properties.

Esse arquivo de propriedades deve conter as propriedades que especificam os arquivos raiz requeridos.  Consulte a página Propriedades Específicas do Recurso para obter detalhes sobre as propriedades raiz.