7

次の形式のすべてのファイル名を持つ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

ビルドプロセス中にそのようなディレクトリ構造を作成しましたが、使用し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>   
4

2 に答える 2

37
<dirset id="dist.contents" dir="${nativePackageDir}" includes="*"/> 
<property name="prop.dist.contents" refid="dist.contents"/>
<echo>${prop.dist.contents}</echo>

filesetの代わりにdirsetを使用すると、問題が解決するはずです。

于 2012-12-27T23:34:09.117 に答える
0

Ant タスクの実装を Java で記述するだけで済みます。この実装には、入力ディレクトリと、書き込みたい specfile のパスをパラメーターとして指定します。

巨大な ant xml ファイルを使用する代わりに、Java で再利用可能な ant タスクを使用する方が、より適切で管理しやすいと思います。

于 2012-05-10T05:43:05.330 に答える