Pergunta

Eu vejo referência do lote de uma formiga, mas eu não entendo exatamente o que seu significado fazer? Pelo que tenho ouvido seu suposto compilar seus projetos, mas eu não posso simplesmente fazer isso clicando Run-> Run no eclipse?

Edit: Eu acho que eu deveria reformular a minha pergunta. Eu já sei que formiga é um 'software de automação de build', a minha pergunta é, o que exatamente é a automação de construção? Eu pensei que você deveria testar seu aplicativo, e quando ele está sendo executado você clique no botão 'construir' em eclipse ou através de java de linha de comando, e faz um arquivo .jar com isso? Então, por que você precisa 'Automatizar' este processo?

Foi útil?

Solução

Eu já sei que formiga é um 'software de automação de build', a minha pergunta é, o que exatamente é a automação de construção? Eu pensei que você deveria testar seu aplicativo, e quando ele está sendo executado você clique no botão 'construir' em eclipse ou através de java de linha de comando, e faz um arquivo .jar com isso? Então, por que você precisa 'Automatizar' este processo?

Nem todos o desenvolvimento Java é feito através de eclipse e nem todos os frascos podem ser construídas a partir da linha de comando (ou deve ser construído a partir da linha de comando).

Você pode precisar adicionalmente executar casos de teste, testes de unidade, e muitos, muitos outros processos.

O que formiga faz, é fornecer um mecanismo para automatizar todo esse trabalho (assim você não tem que fazê-lo cada vez) e, talvez, você pode invocar esse script ant todos os dias às 6 pm.

Por exemplo, em alguns projectos, é necessária uma compilação diária, são as seguintes as tarefas que podem ser automatizados com formiga, para que possam funcionar sem intervenção humana.

  • Conectar ao servidor de subversão.
  • Fazer download / atualização com a versão mais recente
  • compilar a aplicação
  • Executar os casos de teste
  • Pacote da aplicação (no frasco, guerra, orelha, ou qualquer outro)
  • cometer este binários de construção para a subversão.
  • Instale o aplicativo em um servidor remoto
  • Reinicie o servidor
  • Envie um e-mail com o resumo do trabalho.

É claro que para outros projectos isso é um exagero, mas para alguns outros é muito útil.

Outras dicas

rogeriopvl é absolutamente correto, mas para responder à sua "eu não posso simplesmente fazer isso clicando Run-> Run em Eclipse?" pergunta:. Isso é bom para um projeto que você está trabalhando em seu próprio país, e não precisam de uma compilação repetível, scripts em vários ambientes

Se você está trabalhando em um projeto open source, software no entanto, ou profissional que precisa ser capaz de construir em um servidor de compilação etc, exigindo um IDE específico para ser executado não é uma boa idéia.

Ant é usado para automatizar um processo de construção, mas um processo de construção é muitas vezes muito mais do que a compilação. Ant tem "tarefas" que podem ser usados ??para executar funções úteis diversos. Você pode criar sua própria tarefa de fazer qualquer coisa por escrito uma classe java e dizendo formiga onde encontrá-lo. Você pode então misturar e combinar essas tarefas para criar alvos que irá executar um conjunto de tarefas.

Você também pode configurar um ambiente dinâmico em que para construir sua aplicação. Você pode configurar arquivos de propriedades para variáveis ??de retenção que podem ser usados ??no processo de construção, ou seja, para manter caminhos de arquivo, caminhos de classe, etc. Isso é útil, por exemplo, para diferenciar entre o teste e produção constrói onde caminhos de implantação, instâncias de banco de dados, etc. pode mudar. Ant também inclui controlo de fluxo (if, etc)

Algumas coisas que eu vi formiga fazer:

  • código Compilar
  • Use o controle de versão para finalizar compra a versão mais recente ou para marcar a versão que está sendo construído
  • Execute o SQL scripts para construir ou reconstruir um banco de dados de teste
  • copiar arquivos de um recurso externo para inclusão em um projeto
  • código Bundle em um frasco, guerra ou arquivo de ouvido
  • Implantar um aplicativo da Web para um servidor de aplicativos
  • Restart um servidor de aplicativos
  • Executar um conjunto de testes
  • A análise estática, ou seja, CheckStyle ou PMD
  • Enviar e-mail para uma equipe para alertá-los para uma compilação.
  • Gerar arquivos com base em informações da construção.
    • Exemplo: Eu tenho um jsp em meu aplicativo que não faz nada além de informações Apresentação da versão / build. É gerado pela formiga quando eu executar uma compilação, e a equipe de operações de produção verificações desta página quando implantar o aplicativo para se certificar de que eles implantou a construção correta.

Em muitas empresas maiores (e provavelmente algumas menores), você verá que o código de produção não é construída pelas pessoas que o desenvolveram . Em vez disso, os desenvolvedores podem verificar o seu código em um repositório de código fonte e marcá-lo. Em seguida, eles dão essa tag para uma equipe de construção.

A equipe de construção, em uma área separada (limpo) - possivelmente em algum servidor sem cabeça (ou seja, sem GUI) - irá então verificar o código e executar um script de construção. O script de construção será completamente independente do ambiente de desktop / IDE .

Isso garante que nada que passa a ser no computador qualquer desenvolvedor é "poluindo" a compilação. (Ou, mais provavelmente, nada de controle fonte externa é necessária para que o sistema funcione!)

Assim, a maioria software que você usa nunca, sempre ser construído a partir de área de trabalho de um desenvolvedor.

PS. Você também pode querer olhar para a idéia de Integração Contínua

A resposta curta é que Ant é uma ótima maneira de criar uma compilação de projeto completo, que é independente de qualquer ferramenta especial, qualquer desenvolvedor pode estar usando. Sem uma compilação independente, as coisas podem ir derem errado rapidamente - especialmente para grandes equipes de projeto

.

E agora para a resposta a longo ... I foram levados para vários projetos, sem qualquer sentido de uma construção independente. Em um projeto, havia um cara que não era um desenvolvedor que foi encarregado de criar e implantar o software. Ele havia criado 147 arquivos janelas lotes separados para compilar cada EJB, cada um servlet, e cada componente do cliente. Não houve verificação de erros para esta compilação. Todas as mensagens de log, incluindo mensagens de erro foi para fora padrão. Foi até ele reconhecer manualmente ao ler este log que exceção ou mensagem impressa foi um normal e qual a mensagem foi um erro. Ele também teve que implantar esse software, ele acabou de construir. A implantação foi igualmente complexo desde há várias camadas de balanceamento de carga. Cada módulo teve que ser colocado no lugar certo manualmente com a configuração opções para combinar camadas a montante ea jusante. Criar e implantar esse software levou pelo menos 3 dias usando esse método. Claro, só então alguém poderia determinar se a compilação "funcionou". Normalmente, após este período, todos os programadores iria lutar para depurar a compilação. Programadores diria meu módulo funciona bem no meu IDE. Eu só clique em Executar como esta, ver?

Na verdade, os módulos individuais de software geralmente funcionou, mas a construção e implantação foi terrivelmente ineficaz. E tão ruim, foi igualmente difícil para qualquer um para implantar uma compilação de mais de um ambiente. Gestão diria, ok, agora você tem esta compilação trabalhando em nosso ambiente de testes de regressão. Agora implantar essa mesma construção neste outro ambiente para os caras de vendas podem demonstrar vinda para cima e software. Isso deve ser simples de fazer, mas também levou pelo menos 2 dias, seguido por um "depuração da compilação" período. Constrói e implanta nunca foram simples e não precisa. É realmente diminuiu o baixo projeto.

De qualquer forma, nós substituímos este procedimento inteiro com um mecanismo de construir e implementar com base Ant completa. O resultado final foi a de que uma construção completa pode ser criada e implementada em menos de 30 minutos, completamente automatizados. O QA cara gerir o constrói e implanta poderia manter um quadro de que o ambiente tinha que construir implantado nele e qual grupo estava usando esse ambiente. Isso foi algo que simplesmente não era possível com o sistema antigo.

Ant é para automatizar os processos de construção de software:

http://en.wikipedia.org/wiki/Apache_Ant

Ant permite CRISP (completo, repetível, informativo, escalonável, portátil) constrói. Você pode encontrar grande informação sobre isso neste apresentação por Mike Clark e na sua livro, Pragmatic Projeto de Automação .

Ant é uma ferramenta de construção, semelhante a makefiles (embora com uma sintaxe muito diferente em XML). Se você estiver usando apenas do Eclipse-lo bem se ater a isso e você sempre pode converter um arquivo de construção Ant para um projeto Eclipse (configurações de lançamento do Eclipse são, então, se bem me lembro, o equivalente a alvos de compilação de formiga).

Se você deseja implantar o código fonte da aplicação e permitir que outros facilmente construir ou configurá-lo, automatizando que o uso de Ant provavelmente não é uma má idéia. Mas geralmente não é uma experiência consistente para os usuários ou pelo menos eu não tenho visto muito consenso sobre o que as metas devem estar lá e fazer o que até agora.

Ant também pode ser usado para regular de compilações automatizadas (você não quer bater Run em Eclipse, todas as noites, à direita: -?))

Se há uma perto de você Eu acho que você obter um lote de CITCON , a integração contínua e Conferência testes. Você começa a falar com muitas pessoas sobre os benefícios da automação aplicada a construir e testar software.

Basicamente as pessoas usam Ant (com outras ferramentas) para automatizar tudo o que quer que aconteça depois de um commit. As vantagens básicas de tais automação são mais rápidos, melhores e mais baratos.

Mais rápido porque as coisas acontecer imediatamente, sem esperar por um ser humano para chegar ao redor dele.

Melhor porque os computadores são realmente muito bons em fazer a mesma coisa da mesma maneira cada vez. (Os seres humanos tendem a chupar pelo que.)

Mais barato porque você tem menos erro e os erros que ocorrem são capturados mais cedo e, portanto, mais barato para correção.

Você também está se referindo ao "" Export formiga buildfile ".

Se você escrever seu próprio script Ant para construir o seu aplicativo fora eclipse, você pode escrever seus próprios objectivos que usam o Ant tarefa delegar na gerado build.xml .

Além disso, você pode configurar 'construtores' a do projeto (project properties » Builders) para executar qualquer script (formiga ou não) que você quer quando você constrói o projeto, manualmente ou automaticamente.

Joel (Spolsky) tem um ótimo artigo em "O Joel Test". Muitos deles giram em torno de ser capaz de fazer coisas importantes, muitas vezes, de forma rápida e confiável. Uma dessas coisas é a sua construção.

Eclipse está usando ant para a construção, execução, implantação, ...

"Ant é uma ferramenta de construção baseada em Java. Em teoria, é tipo como Marca, sem rugas de fazer e com a portabilidade completa do código Java puro." (De link de texto

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