Salvar alterações em Plugins
06/12/2012 12:10
2
Ola Pessoal,

É comum em nossos projetos Grails trabalharmos com diversos plugins para facilitar nossa vida. O problema é que as vezes necessitamos de personalizar alguns comportamentos para adequar o plugin às nossas necessidades.

Quando eu altero um plugin eu prefiro não trabalhar diretamente nos arquivos do plugin, prefiro manter os originais e sobrescrever os métodos através da aplicação uma vez que o grails prioriza a aplicação antes dos plugins.

Pensei em outro método que proporcionasse uma organização de meu código como alterar o plugin original e armazená-lo em um repositório e assim eliminaria no código de minha aplicação as referencias ao mesmo.

Assim gostaria de saber a experiência de vocês com o armazenamento e gerenciamento das alterações dos plugins? O que vocês fazem para salvar as alterações de modo que facilite manutenção e seja produtivo?
Tags: plugin, organizacao


0
Excelente pergunta.

Eu tendo a tratar um plugin customizado como se fosse um projeto meu, então o trato da mesmíssima maneira como trataria qualquer outro projeto.

No caso dos plugins, no entanto, é interessante você ter o seu próprio repositório, como por exemplo o Artifactory: assim sua equipe de desenvolvimento pode trabalhar com seus plugins customizados como se fossem qualquer outro.


1
Um modo de fazer isso é pelo maven.

Uma soluçao que já vi é:
- criar um projeto grails+maven (ex: plugin-extendido)
- instalar o plugin que deseja modificar (ex: plugin)
- extender a classe e/ou sobreescreve os métodos que deseja alterar.

Dae instala no seu projeto o plugin-extendido
06/12/2012 15:49


3
Aqui agente prática o seguinte:

1) Se a alteração é grande, segue o raciocínio do Kico

2) Se é coisa pequena, faz o "Override" da classe do plugin, direto no projeto. Ou seja, você quer mudar alguma coisa na classe org.plugin.Ruim (que está no src/ do plugin), basta copiar essa mesma classe pro src/ do seu projeto (e com o mesmo package). Alterar ela a vontade, incluir no git/hg, etc. Quando você executar a aplicação o grails vai perceber que existem duas classes com mesmo nome e mesmo package, ele vai dar a preferência para a classe do seu projeto, ao invés da do plugin.
06/12/2012 18:07


0
Bacana madruga0315.

Te perguntar uma coisa: neste caso, como vocês garantem a compatibilidade das suas alterações com a evolução do plugin? Digo: quando sai uma nova versão do plugin, como vocês garantem que suas modificações ainda funcionarão? Vocês ficam presos à mesma versão do plugin?


2
Fico feliz por ver que não somente eu que passa por este dilema.

Henrique,

interessante sua pergunta pq quando sai uma nova versão do plugin é um grande trabalho pq todas as modificações que fiz no plugin serão migradas e as vezes sempre esquecemos de uma que não documentamos com bastante detalhes.
07/12/2012 10:40


0
Pois é, o interessante desta discussão é que ela vai além do mero uso de plugins, ela tem tudo a ver com o uso de código terceirizado, que, independente da linguagem ou ambiente de desenvolvimento, a gente sempre vai enfrentar os mesmos problemas.


0
Nossa eu também passo por esse problema. Estou começando a usar plugins em meus projetos e saiu uma versão nova e teve que sofrer alteração porém foi tranquilo. Só que quando meu projeto crescer vai ficar muito trabalhoso fazer isso um por um.

Estou estudando o maven para ver se me ajuda a guardar meus Plugins, porém ele é bem complicado.

Alguém conhece algum repositório onde posso armazenar minhas dependências maven e que seja free?
07/12/2012 15:52


0
Oi Ovidio,

experimenta o Artifactory



Ainda não faz parte da comunidade???

Para se registrar, clique aqui.


Aprenda Groovy e Grails com a Formação itexto!

Newsletter Semana Groovy

Assinar

Envie seu link!


Livro de Grails


/dev/All

Os melhores blogs de TI (e em português) em um único lugar!

 
Creative Commons
RSS Grails Brasil é mantido por itexto Consultoria.
Em caso de problemas contacte Henrique Lobo Weissmann (Kico) por e-mail: kico@itexto.com.br
Todo o conteúdo presente neste site adota o Creative Commons como licença padrão.
Ver: 4.14.0
itexto