Criando um flask com formiga

Eu estou usando o Ant para construir alguns projetos Java.
Em alguns, eu tenho um diretório lib/ , que contém dependencies externas, na forma em arquivos JAR.

Durante a construção, eu crio um jar empacotado, que contém o código do projeto, junto com as dependencies, adicionando ao arquivo jar do pacote um zipfileset para cada um dos jars no diretório lib/ .

O problema é que toda vez que eu adiciono um jar ou altero nomes, eu preciso lembrar de atualizar o arquivo build.xml , já que não consegui encontrar uma maneira de adicionar esses zipfilesets maneira automática que includeá todos os jars em um certo padrão (por exemplo, lib/*.jar ).

Existe uma maneira melhor de fazer isso?

Eu considerei escrever minha própria tarefa Ant para isso, ou usar a API ant do Groovy para fazer isso de forma programática, mas queria saber se há uma maneira de fazer isso usando formigas “baunilha”.

No meu alvo, eu tenho algo parecido com isto:

         

E aqui está como eu construo meu classpath:

               

O mf.classpath é usado a partir do destino do pacote postado acima. Esta parte eu copiei de outro lugar, então não estou familiarizado com isso.

Edição rápida. Javac precisa saber sobre esses flasks também.

        

Use um zipgroupfileset . Por exemplo:

      

O zipgroupfileset é documentado com a tarefa Zip .

Para aqueles que usam o NetBeans, aqui está como você pode criar um arquivo JAR com bibliotecas agrupadas usando zipgroupfileset:

                    

Eu adicionei essa definição de destino ao final do arquivo build.xml. O nome do alvo é -post-jar.

Aqui está um exemplo simples de um alvo ant que criará um jar (chamado test.jar) que inclui todos os arquivos jar no diretório lib. Talvez isso resolva seu problema?