Perguntas Mais Freqüentes sobre Caminhos de Classe Dinâmicos de PDE

Caminhos de Classe Dinâmicos é o modo como o PDE computa o caminho de construção para projetos de plug-in no Eclipse 3.0.

P: O que é uma estabilidade de caminho de classe?
R:
A estabilidade de caminho de classe é uma medida da alteração do caminho de classe em relação à escolha da auto-hospedagem feita pelo desenvolvedor. O ideal é que os caminhos de classe não sejam alterados, independentemente do complemento dos projetos de origem na estação de trabalho. A auto-hospedagem de projetos binários oferece boa estabilidade de caminho de classe, em que todos os caminhos de classe contêm apenas referências de projetos. A auto-hospedagem de plug-in externo oferece caminhos de classe menos estáveis. Eles ainda estão estáveis em relação ao local de instalação das bibliotecas externas, mas a lista de plug-ins como projetos de origem deve permanecer constante para todos os membros de uma equipe a fim de compartilhá-los por meio de um repositório.

Desde a versão 2.0, a versão de plug-in incluída no local de plug-in no sistema de arquivo reduziu ainda mais a estabilidade do caminho de classe quando plug-ins externos eram utilizados.

P: Se os projetos binários oferecem uma estabilidade de caminho de classe melhor, por que não usá-los o tempo todo?
R:
A auto-hospedagem utilizando projetos binários importados é uma boa opção quando o número de plug-ins importados é razoavelmente pequeno (algumas dúzias). Para projetos grandes com centenas de plug-ins, uma importação por atacado não é uma opção. Geralmente, seus desenvolvedores fazem a auto-hospedagem com poucos projetos de origem, algumas dúzias diretamente relacionadas a projetos binários e todos os outros como plug-ins externos. A partir do ponto de vista puramente teórico, é estranho gastar tempo e recursos para importar dúzias de plug-ins externos e compilar apenas alguns projetos de origem.

P: Eu acho que o método de auto-hospedagem (projetos binários/plug-ins externos) é melhor. Qual é o problema de a minha equipe utilizá-lo se fazemos isso juntos?
R:
Os caminhos de classe estáveis (utilizando projetos binários ou plug-ins externos) definem o seu método de auto-hospedagem e também forçam todos a utilizá-lo.

P: O que são caminhos de classe dinâmicos?
R: Caminhos de Classe dinâmicos é um recurso de PDE pelo qual uma parte do caminho de classe de projeto de plug-in, relacionado às dependências de plug-in, é computada dinamicamente utilizando tecnologia de contêiner de caminho de classe de JDT. A resolução dos caminhos de classe dinâmicos é executada 'na hora' e está sempre em dia com as condições no espaço de trabalho. Além disso, a natureza dinâmica da resolução do caminho de classe permite que p PDE se adapte às alterações e sempre tenha o caminho de classe correto independente do método do auto-hospedagem.

P: O que é estabilidade de caminho de classe de caminhos de classe dinâmicos?
R:
Resultado. Já que todas as entradas de plug-ins necessários são substituídas por uma entrada de contêiner de caminho de classe, seu caminho de classe será sempre o mesmo.

P: Como os caminhos de classe dinâmicos podem me ajudar?
R: Com caminhos de classe dinâmicos, não há necessidade de tomar decisões diretas a respeito do estilo de auto-hospedagem. Se os projetos binários estiverem presentes, os caminhos de classe dinâmicos irão solucionar as referências do projeto. Se não, eles serão resolvidos para JARs de plug-in externos. Os projetos binários são incluídos ou removidos, os caminhos de classe dinâmicos vão rastrear as alterações e fazer as adaptações. Você não precisará atualizar seu caminho de classe novamente. Além disso, outras equipes que querem pegar um ou mais dos seus projetos a partir do CVS a os obtêm para compilar, não precisam utilizar seu estilo pessoal de auto-hospedagem para fazê-lo.

P: Já que o PDE Core está resolvendo os caminhos de classe dinâmicos, significa que eu dependo do PDE para fazer o que é certo?
R:
De certa forma, sim. Sendo dinâmico, seu caminho de classe será computado sempre na transferência, não terá um código rígido no arquivo .classpath (que era a idéia, certo). Mas, considere o seguinte: O PDE possui um algoritmo sofisticado para computar o caminho de classe, que se esforça para tê-lo o mais próximo possível, para as condições de tempo de execução. O que o compilador JDT 'vê' na hora do desenvolvimento deveria ser o mais próximo possível do que os loaders de classe verão na hora da execução. O PDE Core é mais capaz de manter o caminho de classe mais em dia do que você mesmo na maioria das vezes. Se precisa adaptar manualmente o caminho de classe para compilar, alguma coisa está errada com sua configuração e há uma alteração estranha, seu plug-in não será executado corretamente (com exceção da equipe de SWT).

P: Minha equipe utiliza projetos binários exclusivamente para auto-hospedagem. Perderei alguma coisa ao comutar para caminhos de classe dinâmicos?
R:
Não. Os caminhos de classe dinâmicos não ditam sua escolha pessoal de disposição de auto-hospedagem. Ele apenas resolve suas dependências de plug-in em um determinado contexto. Se continuar importando plug-ins externos como projetos binários, os caminhos de classe dinâmicos irão solucionar as referências de projetos como anteriormente.

P: O que devo ativar nos caminhos de classe dinâmicos?
A:
Atualize os caminhos de classe de todos os plug-ins 2.1 apenas uma vez. Você verá que os caminhos de classe estão menores agora e todas as referências de plug-in de pendentes são substituídas com uma entrada de contêiner. Você pode continuar trabalhando. Certifique-se de verificar os projetos de origem no repositório, incluindo os arquivos .classpath alterados.

P: Tenho entradas extra de caminhos de classe, então posso compilar minhas tarefas Ant/servlets/JSPs.
R:
Como parte da computação do caminho de classe, o PDE leva a propriedade 'jars.extra.classpath' a partir do arquivo build.properties em conta. Se estiver configurado corretamente para construções, o PDE irá gerar o caminho de classe correto.

P: Como manipulo as entradas de caminho de classe computadas dinamicamente?
R:
No caso, improvável, de precisar manipular as entradas de caminho de classe dinâmico, você pode fazê-lo a partir da guia Propriedades>Caminho da Construção Java>Bibliotecas. Expanda o nó 'Dependências de Plug-in' e manipule as entradas lá.

P: Algumas das entradas computadas para bibliotecas não têm anexos de origem. Posso inclui-los manualmente?
R:
O PDE computa anexos de origem para a maioria das bibliotecas. Há exceções de casos em que os anexos de origem automáticos podem falhar devido a zips de origem que não seguem as convenções de nomenclatura. Você pode anexar origens manualmente para essas entradas no diálogo de propriedades do caminho de construção.

P: Meus anexos de origem manuais serão apagados na próxima vez que o PDE computar o caminho de classe dinamicamente?
R:
Não. O PDE mantém a trilha desses casos manuais e reaplica-os após a computação dinâmica, contanto que o caminho da biblioteca não seja alterado.

P: Sou um desenvolvedor SWT. Posso utilizar caminhos de classe dinâmicos?
R:
Infelizmente, não. A equipe SWT possui uma configuração única de auto-hospedagem pela qual os caminhos de classe para vários ambientes são salvos no repositório e renomeados como .classpath no projeto dependendo da plataforma que estão trabalhando. Eles deverão continuar utilizando seus métodos de auto-hospedagem.