【问题标题】:How to jar java source files from different (sub-)directories?如何从不同的(子)目录中提取java源文件?
【发布时间】:2010-11-12 08:17:42
【问题描述】:

考虑以下目录结构:

./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 且无需显式引用所有扩展的简单解决方案?

【问题讨论】:

    标签: java ant


    【解决方案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>
    

    【讨论】:

    • 感谢马丁的建议。那成功了。 regexpmapper 是缺失的部分。我只需要在映射器中添加属性handdirsep="true" 即可使其在Windows 上运行。
    猜你喜欢
    • 2013-08-21
    • 2019-08-12
    • 1970-01-01
    • 2020-12-24
    • 1970-01-01
    • 2020-02-25
    • 2021-09-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多