Lucas Teixeira

@lucastex

Gerenciamento de dependências com Grape

com 5 comentários

Mais uma maneira de se gerenciar dependências :)

Agora é a vez do Grape, um módulo construindo em Groovy que abstrai toda aquela configuração do maven/ivy que vc teria por padrão. O grande diferencial do Grape, é que ele traz essa configuração mais para perto de quem precisa dela, ou seja, no próprio código fonte!

Funciona basicamente assim, você anota o seu método que irá precisar da dependência com a anotação @Grab dizendo qual é o grupo, artefato e versão da biblioteca que você precisa e pronto! Quando a classe for carregada, esta anotação irá disparar o download desta dependência automaticamente. Os arquivos que são baixados via grape são guardados dentro do diretório do usuário na pasta .groovy/grapes

Segue um simples exemplo que depende do commons-lang 2.4 e usa um método simples da classe StringUtils para trocar o case de uma string.

import org.apache.commons.lang.StringUtils

@Grab(group='commons-lang', module='commons-lang', version='2.4')
void testGrape() {

   def name = "Lucas Frare Teixeira"
   println StringUtils.swapCase(name) //lUCAS fRARE tEIXEIRA

}

//Chama a execução do método
testGrape()

Veja que a únca coisa que precisamos fazer, é anotar o método com a dependência e ele fica responsável por fazer o download.

Mas, conversando com o @paulosuzart do CodeMountain, chegamos a conclusão, que sistemas de maior porte, merecem um controle de dependências mais centralizado e até por que não dizer, organizado.

Ou seja, fica a minha dica de uso do Grape para a distribuição de scripts e arquivos pequenos, para evitar aquela coisa chata de enviar jars, setar classpath, ou então ter arquivos pom que definem dependência e etc.

Para evitar esta dor de cabeça, sem dúvidas o grape é ideal!

Postado por Lucas Teixeira

October 30th, 2009 at 3:47 pm

Postado em Groovy

Com as tags , , , ,

5 Respostas a 'Gerenciamento de dependências com Grape'

Receber novos comentários por RSS or TrackBack to 'Gerenciamento de dependências com Grape'.

  1. Novo post! Gerenciamento de dependências com #grape. Facinho facinho: http://tinyurl.com/ybz4ze2

    Lucas Teixeira

    30 Oct 09 at 15:49

  2. RT @lucastex: Novo post! Gerenciamento de dependências com #grape. Facinho facinho: http://tinyurl.com/ybz4ze2

    Paulo Suzart

    30 Oct 09 at 15:50

  3. Terminei o post sobre #grape, pra quem quiser conhecer, acesse: http://tinyurl.com/ybz4ze2

    Lucas Teixeira

    30 Oct 09 at 15:52

  4. Eu já ia comentar que isso ficaria meio bagunçado num projeto, quase antes sem ler o parágrafo que fala disso.

    Felipe Cypriano

    30 Oct 09 at 16:02

  5. @Felipe,

    Realmente imagina só um projeto que precisa de 20 ou 30 libs, ter que depender de @Grab pra cá e pra lá. Vai acabar se tornando outro pesadelo…

    Mas sinceramente, a idéia de poder fazer scripts e não ter que se preocupar com a distribuicao de uma ou duas libs para fazer funcionar me agrada.

    :)

    Lucas Teixeira

    30 Oct 09 at 16:07

Deixe um comentário

Get Adobe Flash playerPlugin by wpburn.com wordpress themes