Definindo o Caminho de Construção Java

Esta seção descreve como definir o caminho de construção Java.  O caminho de construção é o classpath utilizado para construção de um produto Java(IJavaProject). 

Um classpath é simplesmente uma matriz de entradas de classpath (IClassPathEntry) que descreve os tipos disponíveis.  Os tipos podem aparecer no formato de origem ou binário e a seqüência das entradas no caminho define a ordem de consulta para resolução de tipos durante uma construção.

O caminho de construção Java é refletido na estrutura de um elemento de projeto Java.  Você pode consultar um projeto para obter suas raízes de fragmentos do pacote(IPackageFragmentRoot).  Cada entrada do classpath faz o mapeamento até uma ou mais raízes de fragmentos do pacote e cada uma delas contém, além disso, um conjunto de fragmentos do pacote.  

Esta discussão sobre o caminho de construção não envolve o caminho de tempo de execução Java, o qual pode ser definido separadamente do caminho de construção.  (Consulte Executando código Java para obter uma discussão sobre o classpath de tempo de execução.

Alterando o Caminho de Construção

É possível alterar, através de programação, o caminho de construção de um projeto setRawClasspath no elemento Java do projeto correspondente.  O código a seguir define o classpath para um recurso do projeto:

	IProject project = ... // obter algum recurso de projeto
	IJavaProject javaProject = JavaCore.create(project);
	IClasspathEntry[] newClasspath = ...;
	javaProject.setRawClasspath(newClasspath, someProgressMonitor);
	

(Nota:  O termo "raw" classpath é utilizado para enfatizar que variáveis utilizadas para descrever localizações de entrada não foram resolvidas.)

O caminho de construção Java permanece em um arquivo chamado '.classpath' na estrutura de arquivos do projeto.  A finalidade deste arquivo é fornecer uma maneira para compartilhar as definições do caminho de construção Java com outros através de algum repositório de código fonte. Especificamente, esse arquivo não deve ser editado manualmente, pois poderá ser danificado.

Entradas de Classpath

As entradas de classpath podem ser definidas com os métodos de fábrica definidos em JavaCore.  As entradas de classpath podem fazer referência a qualquer um dos seguintes:

Padrões de exclusão

Um padrão de exclusão pode ser atribuído a uma entrada de origem do classpath, o que impede que determinados recursos em uma pasta de origem fiquem visíveis no classpath.  O uso de um padrão permite que partes especificadas da árvore de recursos sejam removidas.  Cada caminho de padrão exclusivo é correspondente à entrada do classpath e utiliza um mecanismo de padrão semelhante ao Ant.  Os padrões de exclusão pode ser utilizados para especificar pastas de origem aninhadas contanto que o padrão externo exclua o padrão interno.

ConsultegetExclusionPatterns() para obter detalhes adicionais sobre padrões de exclusão.

A API do projeto Java,isOnClasspath, verifica os padrões de exclusão antes de determinar se um determinado recurso está no classpath.

Resolução do Classpath

Como as variáveis e contêiners de classpath permitem definir entradas de classpath ligadas dinamicamente, a API do classpath faz distinção entre um classpath não processado e um classpath resolvido.   O classpath não processado é aquele definido originalmente no projeto Java utilizando setRawClasspath, e que pode ser consultado posteriormente solicitando getRawClasspath ao projeto.  O classpath resolvido pode ser consultado utilizando getResolvedClasspath. Esta operação aciona a inicialização das variáveis e contêiners necessários para resolver o classpath.  Várias operações do Modelo Java fazem com o caminho de construção Java seja resolvido implicitamente.  Por exemplo, calcular as raízes de fragmento do pacote de um projeto requer a resolução do caminho de construção.

Copyright IBM Corporation e outros 2000, 2003. Todos os Direitos Reservados.