Descobrir dependências de pacotes não é realmente tão difícil. Você raramente faz isso de qualquer maneira. Provavelmente uma vez durante a configuração do projeto e mais algumas durante as atualizações. Com o maven, você acabará corrigindo dependências incompatíveis, poms mal escritos e excluindo pacotes de qualquer maneira.
Não é tão difícil ... para projetos de brinquedos. Mas os projetos em que trabalho têm muitos, realmente muitos deles, e estou muito feliz em obtê-los de forma transitória, em ter um esquema de nomeação padronizado para eles. Gerenciar tudo isso manualmente manualmente seria um pesadelo.
E sim, às vezes você precisa trabalhar na convergência de dependências. Mas pense duas vezes, isso não é inerente ao Maven, é inerente a qualquer sistema que utilize dependências (e eu estou falando sobre dependências Java em geral aqui).
Portanto, com o Ant, você deve fazer o mesmo trabalho, exceto que você deve fazer tudo manualmente: capturando alguma versão do projeto A e suas dependências, capturando alguma versão do projeto B e suas dependências, descobrindo a si mesmo quais versões exatas eles usam, verificando que eles não se sobrepõem, verificando se não são incompatíveis etc. Bem-vindo ao inferno.
Por outro lado, o Maven suporta o gerenciamento de dependências e as recupera transitivamente para mim e fornece as ferramentas necessárias para gerenciar a complexidade inerente ao gerenciamento de dependências : posso analisar uma árvore de dependências, controlar as versões usadas nas dependências transitivas, excluir alguns dos -los , se necessário, controlar a Converge através dos módulos, etc. não há mágica. Mas pelo menos você tem apoio.
E não esqueça que o gerenciamento de dependências é apenas uma pequena parte do que o Maven oferece, há muito mais (nem mesmo mencionando as outras ferramentas que se integram perfeitamente ao Maven, por exemplo, Sonar ).
Ciclo lento FIX-COMPILE-DEPLOY-DEBUG, que mata a produtividade. Esta é a minha queixa principal. Você faz uma alteração, precisa aguardar a construção do maven e aguardar a implantação. Nenhuma implantação quente de qualquer natureza.
Primeiro, por que você usa o Maven assim? Eu não. Uso meu IDE para escrever testes, códigos até que eles passem, refatore, implemente, implante a quente e execute uma compilação local do Maven quando terminar, antes de confirmar, para garantir que não interrompa a compilação contínua.
Segundo, não tenho certeza se o uso do Ant tornaria as coisas muito melhores. E, de acordo com a minha experiência, as compilações modulares do Maven usando dependências binárias me proporcionam um tempo de compilação mais rápido do que as compilações Ant monolíticas típicas. De qualquer forma, dê uma olhada no Maven Shell para obter um ambiente pronto para (re) usar o Maven (o que é incrível por sinal).
Então, no final, e lamento dizer, não é realmente o Maven que está matando sua produtividade, é o uso indevido de suas ferramentas. E se você não estiver feliz com isso, bem, o que posso dizer, não use. Pessoalmente, estou usando o Maven desde 2003 e nunca mais olhei para trás.