A Ant ainda está no “mainstream” das construções Java?

14

Estamos substituindo lentamente os arquivos de comando em lote (windows .bat) que estavam simplesmente alterando as classes compiladas no IDE dos desenvolvedores, com compilaçõ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 à vontade para usá-lo nessas tarefas. Mas eu me pergunto se o Ant ainda está em uso tão amplo quanto quando eu comecei a aprender, ou se "o mundo mudou" para algo mais novo (e talvez mais leve). (Eu comecei a ver mais Maven construir coisas distribuídas, que eu nunca usei, por exemplo).

A importação prática desta questão, é se eu pressiono novos desenvolvedores a aprender Ant , ou se eles deveriam estar aprendendo alguma outra coisa para compilações?

Eu nunca estou no topo das 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 pensam que novos desenvolvedores devem aprender.

    
por Sam Goldberg 17.11.2011 / 16:33
fonte

5 respostas

23

Eu concordo com os outros aqui que Maven parece ter assumido projetos mais significativos que eu já vi.

Embora o Ant seja altamente flexível, o arquivo de construção não é padronizado, portanto, quando você passa para um novo projeto ou empresa, os destinos são nomeados de forma diferente, o arquivo é estruturado de forma diferente, as dependências entre destinos podem ou não ser estabelecidas , etc.

Com o Maven, você também tem o benefício de não ter que carregar dependências binárias (estou falando de jars) por aí no seu sistema SCM. Muitas outras excelentes ferramentas de Java sabem como ler um arquivo Maven POM (o benefício da padronização), então ferramentas como IDEs podem configurar um projeto Maven muito rapidamente, e construir ferramentas como o Jenkins pode facilmente executar o Maven.

    
por 17.11.2011 / 17:35
fonte
11

Eu tenho trabalhado com o Ant e com o Maven. Na minha experiência, o Maven tem uma vantagem muito strong sobre o Ant.

  • Todos os projetos que vi nos últimos 2 ou 3 anos parecem estar usando maven. Cerca de 3 anos atrás, isso me fez pensar porque versões maven usadas então (2.0.something) pareciam ser bastante confiáveis e com erros. Em algum ponto, embora (2.1 ou 2.2 não me lembro), o maven tornou-se confiável e depois de algum tempo com ele mudei de idéia para o oposto. Agora, eu prefiro ficar surpreso em ver alguém que prefere a formiga ao invés de maven.

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 já vi um produto com documentação pior que a do maven, mas não consigo lembrar qual (uma antiga biblioteca do CSV, iirc).

    
por 17.11.2011 / 17:08
fonte
3

Estamos usando o Maven há vários anos. Ele suporta scripts Ant (assim como o Ant suporta o BeanShell), portanto, seu conhecimento do 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 compilações se você compartilhar componentes entre vários projetos). Também é bem diferente do Ant, então você não pode aproveitar muito o seu conhecimento existente.

    
por 17.11.2011 / 17:18
fonte
1

Eu acho que Ant sozinha está morta na água; ter que especificar todas as suas dependências de caminho de classe manualmente (dependendo da sua configuração) é muito manual e muito propenso a erros. Se o Ant for usado juntamente com uma ferramenta de gerenciamento de dependências, como o Ivy, ele reterá seu poder e eliminará 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 mudar de projeto para projeto ou de trabalho para trabalho, uma das coisas mais chatas que eu acho é ter que aprender o novo padrão para diferentes arquivos Ant. O objetivo de Maven de convenção sobre a configuração significa que dois projetos diferentes terão estrutura muito semelhante, tornando a transição entre eles muito mais fácil do que com o Ant .

Quanto a se o Ant ainda é mainstream ou não, ele dependerá do ambiente de desenvolvimento no qual você está trabalhando. Se o projeto for de uma empresa pequena ou de uma start-up, imaginaria que o Maven seria a escolha natural e o tempo pode ser levado para investir na infra-estrutura, como um Artifactory. No entanto, grandes empresas terão investido muitos anos e muito dinheiro em sua infra-estrutura Ant (configurações, arquivos de construção global, etc), o que significa que eles estarão menos interessados em se afastar de uma tecnologia em que investiram tanto dinheiro. p>     

por 17.11.2011 / 17:47
fonte
0

O Maven está em alta há muitos anos e agora preciso aprendê-lo. As coisas sempre estarão mudando, e saber que Ant está perdendo sua posição não é uma coisa ruim.

O Maven pode ser o único a crescer por pouco tempo, mas se facilitar o nosso trabalho, então vale a pena investir tempo para aprender.

    
por 19.03.2013 / 17:59
fonte