我有一个这样的目录结构(在Netbeans中非常标准)
src/
build/generated/gen-1
build/generated/gen-2
...
build/generatad/gen-n
我使用以下ant命令将所有源包装在一个jar中:
<jar destfile="sources.jar" compress="true">
<fileset dir="src"/>
<fileset dir="build/generated/gen-1"/>
<fileset dir="build/generated/gen-2"/>
...
<fileset dir="build/generated/gen-n"/>
</jar>
是否有一种简洁的方式可以说我想将build/generated
的所有子目录拼凑在一起,但是避免使用gen- i 前缀?
我尝试摆弄<dirset>
,但无法将其与<jar>
混合。
我想要一种避免将所有内容复制到临时目录(如this answer中)的方法。
答案 0 :(得分:3)
假设您至少拥有Ant 1.8,则可以使用<mappedresources>
<jar destfile="sources.jar" compress="true">
<fileset dir="src"/>
<mappedresources>
<fileset dir="build/generated"/>
<regexpmapper from="^gen-\d*/(.*)$$" to="\1" handledirsep="true"/>
</mappedresources>
</jar>
(请注意from
属性中的加倍美元符号,由于Ant在属性中进行属性扩展的方式,因此在regexp中实际上是一美元。
答案 1 :(得分:0)