Pergunta

De minha pequena quantidade de experiência, eu só usei Ant como uma ferramenta de construção. Existem outros projetos que são melhores, e por quê?

Foi útil?

Solução

Maven

É muito melhor do que formiga, porque para a maioria das tarefas comuns que você não tem que escrever uma build.xml complicado, maven tem muito bons padrões e é tudo convenção sobre configuração.

Ele também tem um grande repositório central de bibliotecas e é muito fácil configurá-lo para, tipo, "usar mais commons-qualquer que seja estável". Maven irá então baixar a última versão estável para você (não mais o check-in frascos em VCS) e se uma nova versão upstream estável é lançada, ela vai baixá-lo também. Claro, ele é tão fácil de bloqueá-lo para alguma versão específica se você precisa disso.

Ele também está bem integrado ambos com Netbeans e Eclipse (m2eclipse plugin) para que as honras IDE quaisquer configurações (incluindo dependências) você declarar no arquivo pom.xml.

Existem também algumas desvantagens para maven:. Alguns plugins são bastante mal documentados, a integração com ambos os IDEs não é realmente perfeito, e que de diferentes maneiras, algumas mensagens de erro pode ser difícil de entender

Outras dicas

Ant ainda é um grande jogador. Na minha experiência, é dominante. Além disso, com Ivy, ele lida com alguns dos pontos fortes do Maven. IMO, Formiga vai se tornar um quadro para outras ferramentas:. XML é muito rígida (ver link abaixo)

Maven 2 também é um grande jogador. Conheço pessoas que gosto bastante dele e de cerdas em críticas que eram verdade para Maven 1 (tem percorreu um longo caminho).

Groovy está oferecendo algumas coisas legais no espaço de construção, porque eles construir sobre Ant. Gant é usado em Grails, mas pode ser incorporada numa Gradle. Estes podem ser usados ??para Java também.

Com o risco de lenocínio meu próprio blog, aqui é um post sobre Gant e Gradle. Aqui está um link para o debate muito atual sobre o seu futuro.

na empresa, formiga ainda é o jogador entrenches. dependências não mudam rápido. ao contrário de projetos de código aberto que mantêm mover-se para a mais nova versão bastante de frascos dependentes, a maioria das empresas não tente mudar suas dependências muito rápido. Dado que, vantagens do Maven não são muito muito em comparação com formiga.

Então, novamente, se você quer um pouco de recursos do Maven, folks formigas têm hera ( http: // formiga. apache.org/ivy/ ) para possuem as dependências.

Se você quiser continuar usando formiga, se apossar de "ANT EM AÇÃO", 2ª edição para que você possa usar formiga para a melhor produtividade.

Boa sorte,

Algumas pessoas gostam Ivy , que é uma dependência gestão coisinha para Ant então eu suponho que as pessoas vindo de um fundo Ant vai gostar.

Outros, como Buildr . É uma coisa JRuby, por isso, se você pode fazer malabarismos Ruby e Java nos mesmos projetos, então eu acho que vai ser interessante.

Pessoalmente, eu só uso Maven . É fácil para chicotear acima de um arquivo pom.xml padrão e ter todos os comandos de compilação à sua disposição. E quando o projeto cresce, você já tem a infra-estrutura para a execução de plugins e adicionar dependências.

Você também tem Gant . Gant é Groovy + Ant, você pode escrever suas tarefas em Groovy simples e você também pode ligar para qualquer tarefa de formiga. Se você é uma loja de Java e quiser reutilizar as habilidades de formiga que você tem, mas XML antipatia, eu recomendo Gant, é ver fácil de configurar e você pode incorporá-lo em formiga (e também gant chamada de formiga).

Eu realmente gosto SCons , que é uma ferramenta de construção cujos arquivos de configuração são todos apenas scripts Python. Este vai apelar para qualquer um que sabe Python ou linguagens de script semelhantes. SCons é projetado para funcionar bem com Java, bem como C / C ++ e outras linguagens, e tenho sido muito satisfeito com ele no passado.

Como os arquivos SCons são escritos em Python, você pode escrever código Python arbitrário se você achar que precisa fazer nada especial. No entanto, se você está completamente familiarizado com Python, então não será possivelmente uma curva de aprendizagem mais elevado do que tentando estender Ant ou algo semelhante para fazer o que quiser.

Maven2 parece ser a vinda para cima e coisa.

Para os nossos projetos no entanto, estão migrando de volta para formiga sempre que possível.

Maven2 requer um pouco de conhecimento para obtê-lo exatamente da maneira que quiser, e versões Maven2 parecem lidar com classpaths diferente.

E é uma dor de verificar todas as licenças incluídas nas dependências das dependências que podem se mete em.

E pode ter um tempo de arranque mais lento, como você precisa descobrir as dependências sozinho, mas pelo menos é facilmente legível. Nenhuma mágica acontecendo aqui:)

Se você fizer uso perito, dar um pensamento para um repositório interno como Nexus. Dessa forma, o software não está morto, se algumas bibliotecas decidir ir longe do * net.

* Nós se queimou com maven1; o ibiblio maven1 redirecionamentos de repositório e maven1 não suporta redirecionamentos: (

Eu exortá-lo a começar com suas necessidades quando se considera a ferramenta certa. Cada projeto é diferente, a ferramenta que você usa deve refletir o espaço do problema e não a moda.

Dito isto, acho que para formiga uso geral ainda é provavelmente a melhor ferramenta geral para a construção de aplicações Java. Ele é frequentemente usado de forma eficaz com outras ferramentas de gerenciamento de dependência, mas lá vamos nós de novo contornando fora em uma solução sem um problema.

A boa notícia, é que se o seu processo são boas ferramentas de comutação de construção é um processo bastante indolor - lição -. Começar com um processo bem dimensionado para o problema na mão

Você vai encontrar já algumas respostas em O que são alguns utilitários boa java FAZER? .

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top