将所有子目录合并到一个jar中



我有一个这样的目录结构(在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库,但该库还需要指定所有文件集。

如果你有机会使用其他构建工具,那么我会推荐Gradle,在那里它绝对是可能的。

相关内容

  • 没有找到相关文章

最新更新