2016-10-11 5 views
0

私はJenkinsとAntのビルドステップを使ってビルドプロセスを自動化しています。ビルド操作とビルド後のソース管理タグ付けが正常に動作しています。Antファイルセットを入力として使用して別のファイルセットを構築できますか?

多くのQTプロジェクトがビルドされた後、ビルドから有用な成果物を保存できるようにしたいと考えています。議論/検討のための車両として

、私はビルドディレクトリ内のファイルの次のセットを持って言うことができます:

MyApp.exe 
MyApp.pdb 
MyApp_Tests.exe 
MyApp_Tests.pdb 
SomeLib.lib 
SomeLib.pdb 
3rdParty.lib 
3rdParty.pdb 
Utils.dll 
Utils.pdb 

(実際にはexeファイルの、DLLのlib年代とその関連のpdbファイルより多くがあるとプロジェクトが発展するにつれて、頻繁にビルドの変更によって生成されたファイル。)

私は「成果」のファイル(非テストexeファイルのとDLL年代)を収集したいとそれらのpdbファイルない試験exeファイルの、LIBファイルとそのpdbファイル。私はコピータスクで使用する成果物ファイルのファイルセットを得ることができると信じて

:私は苦労しています何

<copy todir="${artifactDestination}" failonerror="true"> 
    <fileset dir="./build"> 
     <include name="*.exe" /> 
     <include name="*.dll" /> 
     <exclude name="*_Tests*" /> 
    </fileset> 
</copy> 

は、exeファイルに関連するPDBファイルのファイルセットを取得する方法で、つまり、MyApp_Tests.pdb、SomeLib.pdb、3rdParty.pdbを除くすべてのpdbファイルです。

私がしたいのは、exeファイルとdllファイルの初期ファイルセットを使用し、.dllまたは.exeではなく.pdb拡張子のファイル名を持つファイルセットを作成することです。

私はセレクタなどで読んできましたが、私の望む結果を達成するための解決策を見つけられませんでした。

提案がありますか?

答えて

2

次の2つのタスクで必要な作業を達成できるはずです。copy最初のものはあなたがすでに考え出したものです。最初の手順でコピーしたファイルと一致する.pdbファイルをコピーするには、presentセレクタを使用します。

<copy todir="${artifactDestination}" failonerror="true"> 
    <fileset dir="build"> 
    <or> 
     <present targetdir="${artifactDestination}"> 
     <globmapper from="*.pdb" to="*.exe"/> 
     </present> 
     <present targetdir="${artifactDestination}"> 
     <globmapper from="*.pdb" to="*.dll"/> 
     </present> 
    </or> 
    </fileset> 
</copy> 
+0

2番目のコピーでは 'globmapper'を使ってみましたが、最初のファイルを別のファイル拡張子のコピー先にコピーすることしかできませんでした。私は(ほぼ)正しい線に沿って考えていたように見えますが、あなたの提案はまさに私が必要としていたものです。ありがとう@StefanBodewig –

関連する問題