Eu costumava copydircopiar uma árvore de diretórios, mas ela está obsoleta. Meu diretório contém alguns subdiretórios, e alguns deles contêm arquivos e outros contêm mais subdiretórios.
Parece que você deseja fazer uma cópia recursiva. E essa é a solução que o Onipresente deu. Mais pessoas podem encontrar essa pergunta se a palavra "recursiva" aparecer na pergunta.
aparentemente, o includesnão é necessário quando você quer tudo (ver a resposta do usuário s1n )
Abel
40
Isso copia o conteúdo de {src.dir}, mas não o diretório real
cmcginty
As cópias não foram feitas, mas são o conteúdo.
A-Live
Como você é a resposta aceita, você pode corrigi-la para se tornar a resposta correta (a resposta de ery está correta) ;-)
Christian Fries
Percebi que a ideia do SO é curadoria coletiva, e é por isso que qualquer um pode editar a pergunta de outra pessoa (embora você precise de muitos representantes para pular a revisão da edição).
esta deve ser a resposta CORRETA. A outra resposta é para a pergunta "Como você copia o conteúdo de um diretório usando Ant". Existe uma diferença sutil.
cmcginty
"esta deve ser a resposta CORRETA": Com certeza, embora a diferença não seja tão sutil quando você não pode carregar seus recursos com os nomes de caminho esperados.
Jim Pivarski
1
não funciona para o ant 1.8, parece que nada aconteceu.
CCC
8
@CCC garantir que $ {src.dir} seja relativo a $ {src.dir.parent}, e não um caminho completo
Mike Demenok
muito enganador como x.parentNÃO SER o parentde x... -_-
nonchip
25
Você deve apenas especificar o diretório (sem a propriedade includes):
Um ponto importante: o ant só copiará os subdiretórios se os arquivos de origem forem mais recentes que os arquivos de destino. [1] No meu caso, os sub-dirs não estavam sendo copiados (estou usando verbose = "true"), pois não houve alterações e eles já estavam no destino. Você pode usar "substituir" para forçá-lo ou tocar em alguns dos arquivos em seus sub-diretórios de origem.
Eu usei tags include, conforme mostrado no fragmento de código abaixo, em meu arquivo build.xml para copiar arquivos jar individuais dentro de um diretório.
Outra tarefa da formiga é Copydir . A parte principal aqui é incluir o nome do diretório que você deseja copiar após o diretório dest. Os subdiretórios e arquivos serão copiados automaticamente.
Do seu link: Esta tarefa foi descontinuada. Use a tarefa Copiar.
Jim,
0
Este código deve copiar a pasta, bem como seu conteúdo. Ele também usa a tarefa de nome de base para evitar ter que fazer qualquer análise manual de caminho.
Respostas:
acredite que vai fazer o que quiser ... (cópia recursiva feita)
fonte
includes
não é necessário quando você quer tudo (ver a resposta do usuário s1n )Copie o conteúdo, incluindo o próprio diretório.
Nota: $ {src.dir} é relativo a $ {src.dir.parent}, e não um caminho completo
fonte
x.parent
NÃO SER oparent
dex
... -_-Você deve apenas especificar o diretório (sem a propriedade includes):
Veja o manual para mais detalhes e exemplos.
fonte
Copie o conteúdo, incluindo o próprio diretório.
fonte
Um ponto importante: o ant só copiará os subdiretórios se os arquivos de origem forem mais recentes que os arquivos de destino. [1] No meu caso, os sub-dirs não estavam sendo copiados (estou usando verbose = "true"), pois não houve alterações e eles já estavam no destino. Você pode usar "substituir" para forçá-lo ou tocar em alguns dos arquivos em seus sub-diretórios de origem.
fonte
Eu usei tags include, conforme mostrado no fragmento de código abaixo, em meu arquivo build.xml para copiar arquivos jar individuais dentro de um diretório.
fonte
A partir do exemplo aqui , você pode escrever um arquivo Ant simples usando a tarefa de cópia.
Isso deve copiar tudo dentro
src_dir
(excluindo-o) paranew/dir
.fonte
Estou adicionando um padrão mais genérico para copiar todas as subpastas.
Consulte os padrões para obter detalhes.
fonte
Outra tarefa da formiga é Copydir . A parte principal aqui é incluir o nome do diretório que você deseja copiar após o diretório dest. Os subdiretórios e arquivos serão copiados automaticamente.
fonte
Este código deve copiar a pasta, bem como seu conteúdo. Ele também usa a tarefa de nome de base para evitar ter que fazer qualquer análise manual de caminho.
fonte
Eu finalmente copiei usando o seguinte código
Isso copiará a pasta src de dist para o build.
Espero que isso ajude alguém.
fonte