使用ant列出所有文件和子目录

Avi*_*ash 5 ant

我正在尝试rpm使用ant task我需要创建的包创建一个包,specfile其中包含以下格式的所有文件名

%attr(0755, root, root) %dir dir1
%attr(0755, root, root) %dir dir1/dir2
%attr(0755, root, root) %dir dir1/dir2/dir3

%attr(0500, root, root) dir1/file1
%attr(0500, root, root) dir1/dir2/file1
Run Code Online (Sandbox Code Playgroud)

我在构建过程中创建了这样的目录结构,但使用ant我无法列出所有文件和目录,然后我可以写入我的specfile

以下是我试图列出文件,但它没有区分文件和目录,而且我需要一些方法迭代列表.

<fileset id="dist.contents" dir="${nativePackageDir}" includes="**"/>                                     |        
        <property name="prop.dist.contents" refid="dist.contents"/>                                               |  <target name="javaobject-library" depends="props">                                                             
        <echo>${prop.dist.contents}</echo>   
Run Code Online (Sandbox Code Playgroud)

Ane*_*ran 29

<dirset id="dist.contents" dir="${nativePackageDir}" includes="*"/> 
<property name="prop.dist.contents" refid="dist.contents"/>
<echo>${prop.dist.contents}</echo>
Run Code Online (Sandbox Code Playgroud)

使用dirset而不是fileset应该可以解决您的问题.

  • 这应该是选定的答案. (5认同)

Den*_*ret 0

您只需用java 编写一个 ant 任务实现,您将向其提供输入目录和要写入的规范文件的路径作为参数。

我发现在 java 中使用可重用的 ant 任务比使用巨大的 ant xml 文件更好、更易于管理。