1

我在使用 Maven 复制文件时遇到了一些问题。

我以这种方式使用antrun插件:(我想将文件jdk1.5.0_22.tgz复制到临时文件夹中)

<exec executable="cp">
    <arg value="${parent.resources}/jdk1.5.0_22.tgz" />
    <arg value="${iso.tempDir}/"/>
</exec>

它工作正常。现在我做了一个小改动,使其独立于jdk文件版本:(我只将jdk1.5.0_22.tgz改为jdk*.*)

<exec executable="cp">
    <arg value="${parent.resources}/jdk*.*" />
    <arg value="${iso.tempDir}/"/>
</exec>

在这种情况下,我有以下错误:[exec] /bin/cp:不可能做'../../resources/jdk*.*'的统计:没有这样的文件或目录

为什么?

4

1 回答 1

0

这似乎不是一个 Maven 问题。

这甚至几乎不是蚂蚁的问题。

jdk*.*您期望 shell 执行通配符扩展。但是,这一切都不是由 shell 执行的,而是由 Ant 执行的。Ant 不进行通配符扩展,而是将包含通配符的原始字符串传递给cp,它也不进行通配符扩展,而是按字面解释。

作为解决方案,我建议您使用 Antfileset查找文件。当您使用它时,Antcopy可能会进行复制,这将与平台无关(比 using 好得多cp)。

于 2013-10-21T18:08:04.873 回答