如何jar来自不同(子)目录的java源文件? [英] How to jar java source files from different (sub-)directories?

查看:28
本文介绍了如何jar来自不同(子)目录的java源文件?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

考虑以下目录结构:

./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:

I want to produce a source jar with the following contents:

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

我知道我可以为每个源目录使用一个文件集.但是是否有使用 ANT 的简单解决方案,而无需显式引用所有扩展?

I know I could use a fileset for each source directory. But is there an easy solution using ANT without having to refer to all extensions explicitly?

推荐答案

如何将要包含在存档中的所有文件扁平化到一个目录结构中,然后从那里存档?

How about flattening all the files to be included in the archive into a single directory structure, then archiving from there?

使用 regexpmapper 在复制过程中进行展平,就像这样:

Use a regexpmapper to do the flatten during copy, something like this:

<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>

这篇关于如何jar来自不同(子)目录的java源文件?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆