java - Maven,使用antrun复制文件时出错

标签 java linux maven maven-antrun-plugin

我在使用 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*.*' 的统计:没有这样的文件或目录

为什么?

最佳答案

这似乎不是 Maven 问题。

这甚至算不上 Ant 问题。

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

作为解决方案,我建议您使用 Ant 的 fileset 来查找文件。当您使用它时,Ant 的 copy 可能会进行复制,然后它将与平台无关(比使用 cp 好得多)。

关于java - Maven,使用antrun复制文件时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19500299/

相关文章:

linux - printf()会不会和嵌入式linux系统中的232串口通信冲突?

mysql - 获取错误代码 : 3. 执行大型查询时写入文件时出错(Errcode:28)

Maven : PKIX path building failed

java - 无法使用 Spring Boot 构建 Maven 项目

java - 为什么我在 java 代码中得到下一个输出? (假真)

java - Maven,继承pom模块

java - 我的 ArrayList 在 jsp 中不起作用

java - 在流上执行多个逻辑

linux - 使用自己的 shell 脚本启动器在 linux 中运行多个后台进程

java - 找不到 com.android.tools.build :gradle:2. 3.+ 的任何匹配项