Eclipse: Como garantir jar no plug-in tem prioridade sobre outras versões em outros lugares?

StackOverflow https://stackoverflow.com/questions/460872

Pergunta

Estou desenvolvendo um plugin do Eclipse que contém uma versão específica do Lucene. Eu preciso gerar um índice de pesquisa e implantá-lo de modo que possa ser lido por outra aplicação que utiliza a mesma versão do Lucene.

Eu recentemente atualizado eclipse para 3,4 eo índice de pesquisa não é agora legível pela 2ª aplicação. Vejo que eclipse 3.4 contém uma versão mais recente do Lucene e eu estou supondo que esta versão é usado ao gerar o índice.

Como posso determinar exatamente qual versão do Lucene está sendo usado no momento é gerado o índice? Meu plugin classpath começa com a minha versão embarcada do Lucene para que eu teria esperado que a minha versão deve ter prioridade.

TIA

Foi útil?

Solução 2

Parece funcionar agora. Para aqueles de vocês que estão interessados, é isso que eu tinha que fazer:

  • Removido o Lucene 1.4.3 jar do meu plugin
  • Copiado o velho plug-in Lucene de uma versão mais antiga do eclipse na versão 3.4.
  • excluiu todas as dependências no plugin.xml assistente. Agora todos os plugins Lucene são visíveis.
  • Selected versão 1.4.xx e mudou as propriedades para definir uma versão máximo até 1,5
  • Adicionado o outro plugin dependências
  • Mudou caminho de construção: removido frasco de idade, acrescentou plugin de dependência Lucene 1.4.3
  • configuração
  • Recalculated Run. O plug-in Lucene 1.4.3 não foi adicionado automaticamente para adicionado à mão.
  • Agora, quando o índice é gerado, a versão 1.4.3 é carregado.

Hope isso é útil a alguém.

Outras dicas

Você pode querer dar ClassPath Checker e ClassPath Helper uma tentativa.

Você pode ser capaz de que maneira de determinar com precisão o frasco são usados ??em seu ambiente de desenvolvimento, a fim de comparar aqueles com frascos presentes em seu ambiente de implementação, onde Luce gera o índice.

Checker ClasPath conflitos jar:
verificador de classpath

Classpath Helper bloqueados (tapado) Classes ver:
classpath helper

Uma vez que você está desenvolvendo um Eclipse plug-in você deve olhar para OSGi. Eclipse plug-ins são exemplos de grupos OSGi e OSGi tem um forte modelo para o tratamento de dependências e versões entre feixes.

Eu não sei o seu código específico, mas se estava planejando usar Lucene no meu plug-in eu uso do OSGi 'Import-Package' ou 'Exigir-Bundle' funcionalidade para expressar a dependência; Eu não incluir o JAR Lucene no meu plug-in. Se cada plug-in incluído o seu próprio JAR Lucene, você iria desperdiçar espaço, mas mais importante, acabar com versões incompatíveis (como você tem).

site da OSGI não é o melhor lugar para começar sua jornada OSGi (é bom para as especificações OSGi e Peter blogue Kriens). Melhor começar com algo como on-line livro de Neil Bartlett.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top