如果你有机会使用其他构建工具,那么我会推荐Gradle,在那里它绝对是可能的。
我有一个这样的目录结构(在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>
混合。
我想要一种避免将所有内容复制到临时目录的方法(就像在这个答案中)
假设您至少有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中的单个美元)
我怀疑这在Ant中是可能的。您可以查看一个jar库,但该库还需要指定所有文件集。