Substituímos lentamente os arquivos de comando em lote (windows .bat), que estavam simplesmente estragando as classes compiladas no IDE do desenvolvedor, com versões mais abrangentes do Ant (ou seja, obtidas do CVS, compilação limpa, jar, archive, email, etc.)
Passei muito tempo aprendendo (e depurando) problemas com o Ant, por isso estou mais confortável em usá-lo para essas tarefas. Mas me pergunto se o Ant ainda está em uso tão amplo quanto quando comecei a aprender, ou se "o mundo mudou" para algo mais novo (e talvez mais esperto). (Comecei a ver mais coisas do Maven construídas distribuídas, as quais nunca usei, por exemplo.)
A importância prática dessa pergunta é se eu incentivo os novos desenvolvedores a aprender Ant , ou se eles deveriam aprender algo mais para compilar?
Eu nunca estou muito informado sobre as tendências, por isso seria ótimo ouvir de outros desenvolvedores Java o que eles acham que é a melhor ferramenta de criação e o que eles acham que os novos desenvolvedores deveriam aprender.
Respostas:
Eu concordo com outras pessoas aqui que o Maven parece ter assumido os projetos mais significativos que eu já observei.
Embora o Ant seja altamente flexível, o arquivo de construção não é padronizado; portanto, quando você muda para um novo projeto ou empresa, os destinos são nomeados de maneira diferente, o arquivo é estruturado de maneira diferente, as dependências entre destinos podem ou não ser estabelecidas, etc.
Com o Maven, você também recebe o benefício de não ter que carregar dependências binárias (estou falando de jarros) no sistema SCM. Muitas outras excelentes ferramentas Java sabem ler um arquivo POM do Maven (o benefício da padronização), para que ferramentas como IDEs possam configurar um projeto do Maven muito rapidamente, e construir ferramentas como o Jenkins podem executar facilmente as compilações do Maven.
fonte
Eu tenho trabalhado com Ant e com Maven. Na minha experiência, Maven tem uma vantagem muito forte sobre Ant.
Em uma nota menos positiva sobre o maven, minha experiência com a documentação não foi tão boa até agora. Acho que vi um produto com documentação pior que a do maven, mas não me lembro qual deles (alguma biblioteca antiga de CSV iirc).
fonte
Estamos usando o Maven há vários anos. Ele suporta scripts Ant (assim como o Ant suporta BeanShell), portanto, seu conhecimento sobre Ant ainda pode ser útil. O Maven é muito mais poderoso, mas possui alguns requisitos adicionais de infraestrutura (você desejará que um servidor Artifactory ou Nexus hospede suas construções, se você compartilhar componentes entre vários projetos). Também é bem diferente do Ant, então você não pode aproveitar muito do seu conhecimento existente.
fonte
Eu acho que Ant por si só está morto na água; ter que especificar todas as suas dependências do caminho de classe manualmente (dependendo da configuração) é muito manual e muito passível a erros. Se o Ant for usado junto com uma ferramenta de gerenciamento de dependências, como o Ivy, ele retém seu poder e remove a necessidade de gerenciar manualmente suas dependências.
O outro problema com o Ant quando comparado ao Maven é a falta de padronização, que foi mencionada em outras respostas. Ao passar de projeto em projeto ou trabalho em emprego, uma das coisas mais irritantes que acho é ter que aprender o novo padrão para diferentes arquivos Ant. O objetivo de Maven de convenção sobre configuração significa que dois projetos diferentes terão uma estrutura muito semelhante, tornando a transição entre eles muito mais fácil do que com o Ant.
Se o Ant ainda é mainstream ou não, isso dependerá do ambiente de desenvolvimento em que você está trabalhando. Se o projeto estiver em uma empresa pequena ou em uma start-up, eu imaginaria que o Maven seria a escolha natural e o tempo pode ser gasto investir em infraestrutura, como um Artefato. No entanto, grandes empresas investiram muitos anos e muito dinheiro em sua infraestrutura Ant (configurações, arquivos de compilação globais etc.), o que significa que estarão menos interessados em se afastar de uma tecnologia na qual investiram tanto dinheiro.
fonte
Maven está em ascensão há muitos anos, e agora preciso aprender. As coisas sempre estão mudando, e saber que Ant está perdendo sua posição não é uma coisa ruim.
O Maven só pode ser um bom começo por um curto período de tempo, mas se facilitar nosso trabalho, vale a pena investir tempo para aprender.
fonte