环境:Windows 2008 R2 JDK:1.7.0_45(x64) Ant:1.8.3
我正在尝试提取一些cab文件。出于讨论的目的,假设以下布局:
A/L/X.cab
B/M/Y.cab
C/N/Z.cab
我尝试了什么:
<fileset id="cabfiles" dir="[correct path to parent of A,B,C]">
<include name="**/*.cab"/>
</fileset>
<apply executable="expand" failonerror="true">
<arg value="-r"/>
<srcfile/>
<arg value="-F:*"/>
<targetfile/>
<fileset refid="cabfiles"/>
<regexpmapper from="(.*)\${file.separator}" to="\1"/>
</apply>
通过java.util.regex.Pattern的文档,这应该是一个贪婪的模式(虽然我不是那个专家)。
我的意图是:
expand -r [absolute path to]\A\L\X.cab -F:* [absolute path to]\A\L
expand -r [absolute path to]\B\M\Y.cab -F:* [absolute path to]\B\M
expand -r [absolute path to]\C\N\Z.cab -F:* [absolute path to]\C\N
相反,我明白了:
Execute:Java13CommandLauncher: Executing 'expand' with arguments:
'-r'
'[absolute path to]\A\L\X.cab'
'-F:*'
'C:\\A\X'
我不希望引入对ant-contrib的依赖(除非这是唯一的出路)。
答案 0 :(得分:1)
我明白了。
用于
relative="true" and dir="[absolute path to]"
应用任务的属性。