Pergunta

Cada vez que crio um novo projeto, copio o arquivo ant do último projeto para o novo e faço as alterações apropriadas (tentando ao mesmo tempo torná-lo mais flexível para o próximo projeto).Mas como eu realmente não pensei nisso no começo, o arquivo começou a ficar muito feio.

Você tem um modelo Ant que pode ser facilmente portado em um novo projeto?Alguma dica/site para fazer um?

Obrigado.

Foi útil?

Solução

Uma alternativa para criar um modelo é evoluí-lo generalizando gradualmente o script Ant do seu projeto atual para que haja menos alterações a serem feitas na próxima vez que você copiá-lo para uso em um novo projeto.Há várias coisas que você pode fazer.

Use ${ant.project.name} nos nomes dos arquivos, então você só precisa mencionar o nome do seu aplicativo no elemento do projeto.Por exemplo, se você gerar myapp.jar:

<project name="myapp">
   ...
   <target name="jar">
      ...
      <jar jarfile="${ant.project.name}.jar" ...

Estruture sua estrutura de diretórios de origem para que você possa empacotar sua compilação copiando diretórios inteiros, em vez de nomear arquivos individuais.Por exemplo, se você estiver copiando arquivos JAR para um arquivo de aplicativo da web, faça algo como:

<copy todir="${war}/WEB-INF/lib" flatten="true">
   <fileset dir="lib" includes="**/*.jar">
</copy>

Use arquivos de propriedades para propriedades de arquivo de construção específicas da máquina e do projeto.

<!-- Machine-specific property over-rides -->
<property file="/etc/ant/build.properties" />

<!-- Project-specific property over-rides -->
<property file="build.properties" />

<!-- Default property values, used if not specified in properties files -->
<property name="jboss.home" value="/usr/share/jboss" />
...

Observe que as propriedades Ant não podem ser alteradas depois de definidas, portanto, você substitui um valor definindo um novo valor antes o valor padrão.

Outras dicas

Você pode dar http://import-ant.sourceforge.net/ uma tentativa.É um conjunto de trechos de arquivos de construção que podem ser usados ​​para criar arquivos de construção personalizados simples.

Eu tive o mesmo problema e generalizei meus modelos e os transformei em um projeto próprio: Antiplaca.Talvez também seja útil para você.

Se você estiver trabalhando em vários projetos com estruturas de diretórios semelhantes e quiser continuar com o Ant em vez de ir para o Maven, use o comando Tarefa de importação.Ele permite que você faça com que os arquivos de construção do projeto apenas importem o modelo e definam quaisquer variáveis ​​(caminho de classe, dependências, ...) e tenham todos os real crie o script no modelo importado.Ele ainda permite a substituição das tarefas no modelo, o que permite colocar ganchos pré ou pós-alvo específicos do projeto.

Eu fazia exatamente a mesma coisa....então mudei para especialista.O Maven depende de um arquivo xml simples para configurar sua compilação e de um repositório simples para gerenciar as dependências de sua compilação (em vez de verificar essas dependências em seu sistema de controle de origem com seu código).

Um recurso que eu realmente gosto é como é fácil versionar seus jars - mantendo facilmente as versões anteriores disponíveis para usuários legados de sua biblioteca.Isso também funciona a seu favor quando você deseja atualizar uma biblioteca que você usa - como o junit.Essas dependências são armazenadas como arquivos separados (com informações de versão) em seu repositório maven, para que versões antigas do seu código sempre tenham suas dependências específicas disponíveis.

É uma formiga melhor.

Eu fazia exatamente a mesma coisa....então mudei para o maven.

Ah, é o Maven 2.Eu estava com medo de que alguém ainda estivesse usando seriamente o Maven hoje em dia.Deixando as piadas de lado:se você decidir mudar para o Maven 2, terá que tomar cuidado ao procurar informações, porque o Maven 2 é uma reimplementação completa do Maven, com algumas decisões fundamentais de design alteradas.Infelizmente, eles não mudaram o nome, o que tem sido uma grande fonte de confusão no passado (e às vezes ainda é, dada a natureza de “memória” da web).

Outra coisa que você pode fazer se quiser permanecer no espírito da Formiga é usar Hera para gerenciar suas dependências.

Uma coisa a se observar: se você estiver usando o Eclipse, verifique as tarefas do ant4eclipse.Eu uso um único script de construção que solicita os detalhes configurados no Eclipse (diretórios de origem, caminho de construção, incluindo projetos de dependência, ordem de construção, etc.).

Isso permite que você gerencie dependências em um só lugar (Eclipse) e ainda seja capaz de usar uma construção de linha de comando para automação.

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