Maven que treco é esse?

Estou participando de um projeto que faz uso do Maven, mas não entendo qual é a função deste treco no projeto.
Alguém poderia dar uma luz? :wink:

O Maven, é uma ferramenta para gerenciamento e automação de projetos em Java.
O legal dele é que se pode gerenciar libs, a partir do mesmo, e como ele tem seu formato de projeto se pode haver independência de IDE também.
No caso se você usar maven pode ter membros que usem eclipse ou netbeans em um mesmo projeto.

O Maven gerencia dependências que são utilizadas em projetos e não estão “fisicamente” dentro da lib.
De acordo com determinados comandos você consegue criar um jar que incorpora as diversas classes contidas em um repositório do maven e que compartilhem as informações com os demais claboradores.
Isto tudo graças à um arquivo chamado pom.xml, onde você indica qual a dependência, artefato e versão da mesma

...
<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-jdbc</artifactId>
			<version>2.5.6</version>
		</dependency>
...

Tá compreendido?

Então o Maven é um gerênciador de dependências?

Ele também faz isso e é sua principal característica, mas você pode gerenciar todo o projeto com ele.

Sim.
Acredito que a visão do otaviojava se aplica mais ao CVS, pois, ele permite o gerenciamento de versões do projeto, independente da plataforma e IDE utilizados. Embora o maven também não possua esta limitação, ele é mais um gerenciador de dependências que um simples repositório de troca de arquivos do mesmo projeto.

[quote=drsmachado]Sim.
Acredito que a visão do otaviojava se aplica mais ao CVS, pois, ele permite o gerenciamento de versões do projeto, independente da plataforma e IDE utilizados. Embora o maven também não possua esta limitação, ele é mais um gerenciador de dependências que um simples repositório de troca de arquivos do mesmo projeto.[/quote]
valeu pela dica.

Tranquilo otaviojava.
É que eu uso ambos no projeto que estou, então, posso dizer que é isto.
Aliás, uma das coisas que mais tomam tempo é efetuar o clean / install de dependências maven em um projeto desenvolvido em RAD para WAS. Haja paciência.

eu vi muito isso no maven2, sentir uma grande velocidade na versão 3, mas realmente continua relativamente lento.
Sem falar que as vezes ele baixa todas as dependências novamente.
Qual versão você usa ?

[OFF]
A função do maven é fazer o download de TODA a internet para dentro da sua maquina
[OFF]

A bendita 2.0, o projeto não dá suporte à versão 3, por esta ser incompatível com java 1.4 e algumas tecnologia que utilizamos.

[quote=fredferrao][OFF]
A função do maven é fazer o download de TODA a internet para dentro da sua maquina
[OFF][/quote]
De longe a melhor definição. Quem o utiliza sabe que é isso mesmo. :lol:

Particularmente só entendi o que era o maven quando utilizei em alguns projetos, antes eu acreditava que sabia.

Sabendo usar (e com uma boa dose de paciência), é uma boa ferramenta. Isso porque as funcionalidades dele vão um tanto além do simples gerenciamento de dependências. Como o otaviojava mencionou, ele é capaz de gerenciar o ciclo de vida completo do seu projeto. O caso é que, de fato, na imensa maioria das vezes, ele começa a puxar as dependências das dependências e, de fato, demora pra caramba fazer esse processo. Mas algumas ferramentas (tipo m2eclipse, archiva, bom senso) ajudam a tornar o Maven mais produtivo, sim.

Durante algum tempo, eu tive tudo e mais um pouco contra o Maven. Depois eu comecei a reconsiderar, analisando melhor aquilo que ele oferece. E a visão foi mais ou menos essa: meu POM precisava ficar gigantesco, mas o gerenciamento do ciclo de vida do projeto ficava muito mais tranquilo.

[]'s

[quote=drsmachado]Tranquilo otaviojava.
É que eu uso ambos no projeto que estou, então, posso dizer que é isto.
Aliás, uma das coisas que mais tomam tempo é efetuar o clean / install de dependências maven em um projeto desenvolvido em RAD para WAS. Haja paciência.[/quote]

Precisa mesmo dar clean install? Em alguns casos, a IDE (não conheço direito o RAD) consegue reconhecer que tem Maven na área e faz sozinha o deploy do que está no target. Aí, só de vez em quando precisa fazer clean / package (install é só pra alguns casos específicos, não sei se você se enquadra…).

[]'s

[quote=asaudate][quote=drsmachado]Tranquilo otaviojava.
É que eu uso ambos no projeto que estou, então, posso dizer que é isto.
Aliás, uma das coisas que mais tomam tempo é efetuar o clean / install de dependências maven em um projeto desenvolvido em RAD para WAS. Haja paciência.[/quote]

Precisa mesmo dar clean install? Em alguns casos, a IDE (não conheço direito o RAD) consegue reconhecer que tem Maven na área e faz sozinha o deploy do que está no target. Aí, só de vez em quando precisa fazer clean / package (install é só pra alguns casos específicos, não sei se você se enquadra…).

[]'s[/quote]

Então…
Pense no Eclipse, bonitinho, rodando 110% com Tomcat…
Agora pegue isto, coloque uns plugins pesados (tipo atleta de sumô mesmo) e um monte de fru fru…
Aí adapte para Websphere…
Tá acompanhando?
Ah, some a isto a versão ultra mega power final static JDK 1.4.
Então, nem com reza brava eu consigo atualizar o projeto com os novos do CVS e rodar direto…

Perco uns 5 minutos fazendo clean/install do Maven, mais 10 fazendo o clean do websphere. Aí, como ele inicializa, preciso reiniciar o servidor em modo debug…

Cada alteração de código, no mínimo, 35 minutos perdidos.

E olha que uso um core 2 duo e 4GB de memória…