2010-05-08 143 views
2

考虑下面的目录结构:如何从不同的(子)目录中压缩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 

我想产生源罐子以下内容:

com/mypackage/../A.java 
com/mypackage/../T.java 
com/mypackage/../U.java 
... 
com/mypackage/../Z.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> 
+0

感谢您的建议马丁。那就是诀窍。 正则表达式映射器是缺少的部分。 我只需将属性handledirsep =“true”添加到映射器中即可使其在Windows上工作。 – Holger 2010-05-08 15:05:05

相关问题