如何从不同(子)目录中jar java源文件?

时间:2010-05-08 12:42:51

标签: java ant

考虑以下目录结构:

./source/com/mypackage/../A.java
./extensions/extension1/source/com/mypackage/../T.java
./extensions/extension2/source/com/mypackage/../U.java
...
./extensions/extensionN/source/com/mypackage/../Z.java

我想生成一个包含以下内容的源jar:

com/mypackage/../A.java
com/mypackage/../T.java
com/mypackage/../U.java
...
com/mypackage/../Z.java

我知道我可以为每个源目录使用一个文件集。 但使用ANT是否有一个简单的解决方案,而不必明确地引用所有扩展?

1 个答案:

答案 0 :(得分:1)

如何将归档中包含的所有文件展平为单个目录结构,然后从那里归档?

使用regexpmapper在复制过程中进行展平,如下所示:

<delete dir="merged" />
<mkdir dir="merged" />

<copy todir="${basedir}/merged">
    <fileset dir="${basedir}">
        <include name="source/**"/>
        <include name="extension*/**"/>
    </fileset>
    <regexpmapper from=".*source/(.*)" to="\1" />
</copy>

<jar destfile="mypackage.jar" filesonly="yes">
    <fileset dir="merged">
        <include name="**" />
    </fileset>
</jar>
相关问题