Recentemente em alguns tutorias de desenvolvimento Java me deparei com o uso obrigatório de algumas dessas ferramentas, Maven, Ant, Ivy e Gradle.
Tentei usá-las sem sucesso e agora parei e decidi que preciso entender primeiro pra que elas servem.
Alguém poderia explicar isso DE MANEIRA FÁCIL sem empregar termos cabulosos e prévia compreensão de outros conceitos complexos (e se for inevitável, explicá-los também)?
Servem para automatizar o processo de compilar, empacotar e implantar seu projeto. Também servem para gerenciar as dependências que seu projeto tem com outros projetos e bibliotecas. Você declara que seu projeto depende da versão n biblioteca x e a ferramenta baixa da Internet e instala localmente.
Espero que o nível de cabulosidade tenha sido adequado.
Serve para gerenciar dependencias (bibliotecas), auxiliar no processo de build, e facilitar na integração com outras ferramentas.
Como assim?
Gerenciar dependencias: Sem uma dessas ferramentas, pra voce comecar a usar o hibernate, por exemplo, voce precisa ir na internet, baixar o seu jar e colocar no classpath do seu projeto. Com o Maven, você só adiciona umas linhas de código no pom.xml (Arquivo onde estará configurado todas as dependencias) e compilar o projeto com um comando maven: mvn clean install . O maven vai automaticamente baixar da internet e colocar no classpath do seu projeto
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>5.2.1.Final</version>
</dependency>
Auxiliar no processo de build:
Sem nenhuma ferramenta dessas, voce não consegue rodar todos seus testes unitários e de integração de uma vez, precisa ir de classe de teste em classe de teste e rodar eles inidividualmente (Run As > JUnit). Com o maven e os plugins do surefire e failsafe, quando rodar seu projeto (novamente mvn clean install), ele rodará todos os seus testes e dizerá se a build passou em todos os testes ou não
Facilitar na integracao com outras ferramentas
Há diversos e mais variados plugins para ele, uma delas como exemplo é um plugin do tomcat, onde vc configura ele no seu pom e consegue subir o projeto rodando mvn tomcat7:run , sem precisar jogar o war na sua pasta do tomcat, e subir ele manualmente
Bom, essas são as principais vantagens de usar uma ferramentas desse tipo, mas tem outras utilidades tb.
Uia, valeu galera, fez um pouquinho mais de sentido agora, principalmente na parte do download das bibliotecas automatizado.