【问题标题】:listing all files and subdirectories using ant使用 ant 列出所有文件和子目录
【发布时间】:2018-09-20 20:52:35
【问题描述】:

我正在尝试使用ant task 创建一个rpm 包,为此我需要创建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

我在构建过程中创建了这样的目录结构,但使用 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>   

【问题讨论】:

标签: ant


【解决方案1】:
<dirset id="dist.contents" dir="${nativePackageDir}" includes="*"/> 
<property name="prop.dist.contents" refid="dist.contents"/>
<echo>${prop.dist.contents}</echo>

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

【讨论】:

  • 这应该是选择的答案。
  • 这似乎只是以;-separated 格式列出特定目录的子目录。如果我想递归打印出整个文件夹结构怎么办?
【解决方案2】:

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

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

【讨论】:

    猜你喜欢
    • 2014-09-12
    • 2011-12-24
    • 2012-11-14
    • 2017-08-10
    • 1970-01-01
    • 2018-10-17
    • 2012-09-02
    相关资源
    最近更新 更多