Maven, usar ou não usar?
07/08/2012 16:11
1
Pessoal,

gostaria de saber a opinião de vocês sobre o uso do MAVEN junto com os projetos desenvolvidos em GRAILS. Estou em um dilema se uso o Maven ou não, uma vez que o Grails já controla toda (ou quase toda) esta questão em seu próprio framework. A unica vantagem que vejo é que economizaria tempo com as configurações (que no meu ponto de vista são poucas em relação ao tempo de configuração do MAVEN no projeto grails)

Por favor escrevam suas opiniões com bastante detalhes.

Tags: maven, configuração, configuracao


2
Oi Ivgsilva,

Maven: usar ou não? Você pode na realidade usar e não usar ao mesmo tempo. Basta que seja criado um arquivo pom.xml tal como neste link: http://grails.org/Maven+Integration

Eu vejo algumas vantagens interessantes no uso do Maven:

* Você não precisa instalar o Grails no seu PC, pode usar apenas o plugin do Maven pra executar todas as tarefas que precisar.

* Você já tem uma série de ferramentas como Hudson e IDEs já integradas ao Maven: seu projeto vai poder se integrar bem aos demais da sua empresa/portfólio

E o mais interessante: você pode só configurar o seu projeto para usar o Maven e usar as ferramentas de linha de comando da sua instalação do Grails: assim você teria os ganhos da integração com as comodidades da linha de comando tradicional.


1
Não consigo enxergar a vantagem para projetos mais simples (fora essas que o Kico falou).

Começamos a utilizar pois tinhamos muitos plugins (nossos e externos) com versões diferentes para um projeto e ficou muito trabalhoso manter as versões e releases.
E rodar os testes automaticamente ajudou bastante também.

Os pom.xml deram um trabalho para escrever certo, mas valeram o esforço...
07/08/2012 17:00


0
Henrique e Mussatto,

Pelo que entendi o MAVEN apenas se utiliza da estruturação das pastas para padronizar as convenções e assim facilitar a integração de projetos desenvolvido em outras linguagens (me corrija se estiver errado).

Usando vc já usou o plugin Maven Publisher (http://grails.org/plugin/maven-publisher) para gerar o pom.xml na raiz da aplicação? O ruim é que esse plugin foi descontinuado. Vocês conhecem outra ferramenta que ajuda na modelagem do POM.xml ou tem que ser na unha mesmo?
07/08/2012 17:36


0
Putz, pra mim maven era só gerenciador de dependência, mas ele tem tanta coisa que não sei responder essa hehe.

Nunca usei o Publisher =/

Mas pra gerar o pom eu usei esse comando:
http://grails.org/doc/latest/ref/Command%20Line/create-multi-project-build.html

E esse: http://grails.org/doc/latest/ref/Command%20Line/create-pom.html

Mas não saiu 100% (não encontrou dependência entre dois plugins nas pastas), dae tive que ajustar.
07/08/2012 17:49


0
Se for um projeto simples o create-pom acho que sai direto
07/08/2012 17:55


0
Gente, eu recomendo demais conhecer BEM o Maven: talvez seja a melhor ferramenta de produtividade que um desenvolvedor Java tenha em seu arsenal.

Vai muito além do gerenciamento de dependências (o que já é um ganho monstro). Se fosse só pelo gerenciamento de dependências, o Ivy, que é o que é usado pelo Grails já atenderia 100%.

As vantagens no Maven são:

* Ele padroniza seu modo de trabalho com Java dentro da empresa
* Existem inúmeros plugins como code coverage e outros que podem ser usados para automatizar tarefas chatas do seu dia a dia, como deploy, cobertura de testes, etc.
* Como existem inúmeros plugins, existem também inúmeras integrações com ferramentas de build, IDEs, controle de versão, etc.
* Ele controla o ciclo de vida do seu código fonte como nenhuma outra ferramenta que conheço: você tem controle total sobre as etapas de compilação, teste, empacotamento, deploy, etc. E tudo isto de uma maneira padronizada.

A grande dica pra se dar bem com ele é você conhecer bem as convenções que ele adota. Infelizmente nem todas são tão bem documentadas assim. Infelizmente me escapou o nome, mas a OReilly tem um livro excelente sobre o assunto.


1
Mussaratto,

obrigado pela dica vou fazer o teste pra tentar gerar o POM através desse comando. Porém eu queria entender como seria o funcionamento do MAVEN com o Grails se é só criar o POM e ir atualizando as dependências ou devo instalar o MAVEN no mesmo diretorio da aplicação Grails?

Henrique vc sabe me informar:

1) Se o MAVEN muda a estrutura das pastas para aplicar as convenções, também mudara com o Grails né? Como eu faço para implementar o uso do MAVEN em meus projetos Grails? Ou é só gerar o POM e ir atualizando a cada dependência na unha mesmo?

2) Como você mesmo disse a documentação dele deixa a desejar (e é complicada) e eu não achei nenhuma material que chegue neste ponto de detalhamento. Gostaria de entender melhor como ele controla o ciclo de vida do código e das etapas de compilação, teste, empacotamento, etc... você poderia me esclarecer isso com mais detalhes?

08/08/2012 12:49


0
Ainda estou aprendendo direito a usar o maven, mas vou descrever como estou usando

Eu instalei o maven a parte, criando as variáveis de ambiente e colocando o maven no PATH. (nao lembro de cabeça como faz, mas é só seguir lá do site do maven)

Para usar com o projeto Grails, criei os poms com os comandos do Grails e fui na pasta do "pom pai" e mandei compilar com o mvn clean install no terminal.
Dae ele vai compilando na hierarquia e atualizando as builds no repositório local.
08/08/2012 14:21


0
Nos projetos que eu vi (inclusive esse mais recente em Grails), ele não mudou muito a estrutura do projeto...
No máximo ele criava o /target, /plugins e as pastas das IDEs (caso requisitado)

Agora não tenho certeza se era alguma especificidade
08/08/2012 14:25


0
Oi ivgsilva,

ai que tá o lado lindo da coisa. A única alteração que você vai ter no seu projeto é a presença de um arquivo pom.xml na raíz do mesmo.

No link que eu passei acima, sobre integração do Grails com Maven ensina inclusive como você faz para "mavenizar" o seu projeto que, na prática, vai consistir apenas na criação deste arquivo pom.xml que, como você vai ver, vai ser gerado automaticamente para você pelo próprio Maven.


0
Kra,

essa discussão ta mt legal. O Maven é muito falado e eu nao sabia o que era esse negocio.

legal mesmo
08/08/2012 17:30


0
Oi Ilmon,

Maven é uma destas ferramentas nas quais você vai passar pelo seguinte ciclo:

1) Que merda esta porcaria. Não entendo nada que esta joça faz além de baixar jar pra mim
2) Olha, o negócio controla o ciclo de build, massa!
3) Olha, o negócio organizou minha empresa inteira
4) Como é que a gente conseguia trabalhar sem ele hein???

Faz um negócio: eu também estou adorando esta discussão, por isto eu a divulguei no twitter do Grails Brasil. Publica por lá também pra gente coletar mais feedback!


2
Mussato,

valeu pela ajuda. Sua colaboração me ajudou a melhorar meus conhecimentos.


Henrique,

vou seguir sua dica do link e "mavenizar" o projeto. A única coisa que achei ruim é que, pelo que li e entendi de outros textos, não existe uma API que facilita a inserção de informações (dependências por exemplo no POM.xml) devendo ser feito a mão mesmo o que aumenta a chance de erro humano. Se conhecer alguma metodologia (HOW-DO) coloca aqui.


Ilmon,

pra vc que gostou do assunto e quer conhecer melhor, o melhor texto que achei é este http://www.guj.com.br/content/articles/maven/maven_2_guj.pdf é o mais interessante e detalhado que encontrei.



08/08/2012 19:42


0
Oi Ivgsilva,

leve em consideração que parece que a coisa melhorou bastante no Grails 2.1. Não cheguei a averiguar o que exatamente, mas parece que esta parte ai foi bastante aprimorada.

Acredito que valha à pena gastar umas pestanas estudando este negócio. Ai depois você compartilha aqui com a gente ok?


0
Ivgsilva,


kra valeu mesmo pelo manual... é bem detalhado... vou lê-lo e seguir os passos do tutorial que o Henrique deixou pra configurar no Grails.

Ótima discussão. Pra quem não conhece bem como eu ajudou demais... gostei....
09/08/2012 12:52


0
Henrique,

com certeza vou estudar mais sobre isso e depois posto aqui minha experiência.

Grande abraço a todos.
09/08/2012 13:46



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