Ant在文件集中包含dir内容,同时展平path/to/dir

Ant在文件集中包含dir内容,同时展平path/to/dir,ant,Ant,我试图让Ant在文件集中包含一个目录,而不必求助于冗长的解决方案(除非我真的必须这样做)。也许我遗漏了一些明显的东西 <copy todir="targetdir"> <fileset dir="@{source}"> <include name="**/somedir/" /> </fileset> </copy> 我试图从@{source}/path/到/somedir获取somedir的内容,

我试图让Ant在
文件集中包含一个目录,而不必求助于冗长的解决方案(除非我真的必须这样做)。也许我遗漏了一些明显的东西

<copy todir="targetdir">
    <fileset dir="@{source}">
        <include name="**/somedir/" />
    </fileset>
</copy>

我试图从
@{source}/path/到/somedir
获取
somedir
的内容,包括所有子目录,同时不明确知道
somedir
在哪里

因此,假设
somedir
有两个子目录,
sub1
sub2
,目标是让这两个目录在
targetdir
中结束(包括它们的所有内容)

我不能简单地将整个内容展平,因为这会破坏子目录中的目录结构,而上面概述的当前解决方案让我只剩下
targetdir
包含
somedir
,而不仅仅是它的内容


我不想在以后移动目录,因为理论上,我可以在文件集中有多个包含不同的路径,所有这些路径都需要相同的副本。

有几种方法可以在copy元素内部执行此操作。最简单的方法是使用,但您需要知道要从路径中剪切的dir的数量。您还可以使用删除前导目录:

<regexpmapper from="^(([^/]*/)+?)/somedir/(.*)$$" to="\2"/>

以上内容未经测试,但应定义两个捕获组,即somedir之前的所有内容和somedir之后的位,而replace只是第二个组