Problema com o referenciamento de bibliotecas

6 respostas
R

Olá pessoal Boa tarde

Estou com um pequeno problema e queria saber se alguem aqui poderia me dar uma ajuda.
Em meu projeto eu estou criando um modulo para adicionamento de plugins de terceiros. Funciona da seguinte maneira :

Tenho uma GUI principal, onde terceiros poderam por exemplo adicionar menus, janelas, etc. O desenvolvedor que quiser adicionar, terá que adicionar o meu projeto como uma biblioteca, e implementar alguns metodos para a inclusão do plugin. Assim que o meu projeto principal for executado ele irá verificar todos os plugins adicionados através de um arquivo XML.

Bom o problema é que, quando eu adiciono o meu projeto como uma biblioteca, implemento todos os metodos e tento executar de um outro projeto, ocorre um erro por conta das referencias as bibliotecas que o meu projeto principal utiliza.

Bom não sei se expliquei de uma forma que dê para entender, mas se alguem entendeu e tiver uma solução eu agradeço, vlw

6 Respostas

kdoigor

cara, ta estranho esse conceito.

vc deveria adicionar todos os plugins da pasta plugins do seu software , desde que os plugins fossem escritos obedecebdo a interfaçe estipulada por voce ?

R

Os plugins seriam desenvolvidos por terceiros. Eu faria a leitura de um arquivo XML que tem referencia do nome da classe que implementa o menu por exemplo.

Mas esse não é bem o problema, o que acontece é que. As bibliotecas que adiciono a meu projeto não são adicionadas ao jar, quando eu construo o projeto. Gostaria de saber se é uma questão de configuração, e como realizar essa configuração

kdoigor

eu ja fiz plugins pro eclipse e to fazendo um pro aptana pra usar na empresa que trabalho.

acho que vc deveria definir interfaces e carregar os plugins usando reflexão. como vc vai definir as interfaces, vc sabe quais os metodos e por reflexão fica bem mais simples pra vc e pra quem for escrever o plugin.

não vejo a necessidade de vc querer que as pessoas adicionem seu projeto para criar um plugin. se vc definir a interfaçe e o ambiente pronto somente pra jogar o jar do plugin e testar já é o suficiente. é só vc ver como se adiciona plugins no netbeans e no eclipse.

quanto as referencias, se as pessoas vão adicionar seu projeto como dependencia e seu projeto não ta com as bibliotecas pra ser executado, podem acontecer duas coisas: ou elas não vão conseguir fazer a build ou quando executarem, seu programa vai pedir as bibliotecas e não vai achar. ou vc exporta as bibliotecas junto com seu projeto ou segue a abordagem que eu passei acima.

R

Bem, a minha ideia inicial, era fazer a leitura do classpath onde esta o novo plugin, e então adicioná-lo. Mas fui aconselhado a fazer o uso de arquivos XML, para armazenar o endereço das classes. O que acontece é que, para incluir o endereço dessas classes ao arquivo XML eu preciso que as minhas classes sejam extendidas, para que os metodos de manipulação do XML sejam acionados. So que quando eu faço isso acontece o que vc falou, que o meu projeto faz referencias as bibliotecas e não as encontra, no meu caso estou usando Xstream. O problema que quero resolver é como adicionar as bibliotecas para serem exportadas juntamente com o projeto, na hora de criar o jar.

Eu tomei como base um sistema que se chama OpenJump, onde é possivel fazer a inserção de plugins através de um jar, e também de arquivos Xml.

Essa era a idéia inicial, mas vc citou que usando reflezão seria mais fácil. Vou dar uma lida sobre isso e ver como adaptaria isso ao meu problema. Se vc tiver algum exemplo da sua utilização para a adição de plugins a um sistema eu agradeço!!!

Mas desde ja obrigado, vou ler sobre reflexão!!

kdoigor

se for só adicionar o jar faz assim:

se estiver com o eclipse, coloca o plugin fatjar http://fjep.sourceforge.net/

se for netbeans vai em properties no projeto e seleciona exportar lib, apesar q eu acho q ele ja faz isso.

flw

R

Eu estou utilizando o NetBeans, e ja verifiquei algumas coisas na internet que explicavam como exportas as bibliotecas, mas infelizmente nada funcionou.

Não sei se é algo que fiz de errado na hora de criar o projeto, ou de configurar alguma coisa. To tentando achar a resposta. Encontrei um post em outro forum que fala da configuraçao que tem que ser feita no arquivo MANIFEST.MF, vou dar uma olhada a respeito. Se funcionar eu posto aqui.

Vlw cara

Criado 17 de maio de 2010
Ultima resposta 18 de mai. de 2010
Respostas 6
Participantes 2