私は*Plugin
と呼ばれる多くのフォルダを含むSVN externalsフォルダを持っています。そして、これらの各フォルダ内にmodules
フォルダとbinaries
フォルダがあります。Nantファイルセットbasedir withパターン
は私のために問題がある、私のビルドタスクの中、私は私のプロジェクト内の位置だけでなく、私のプロジェクトでどこかにバイナリの場所から任意の*.plugin.dll
へのモジュールから**/*
をコピーしたいです。だからここ
はダミーの例です。
- DummyPlugin1
|- binaries
|- some.assembly.dll
|- some.plugin.dll
|- modules
|- some-named-folder
|- some-sub-folder
|- some.content.xml
|- some-other-sub-folder
|- yet-another-folder
|- some.more.content.jpg
- DummyPlugin2
|- binaries
|- some.other.plugin.dll
|- modules
|- another-named-folder
|- content.xml
|- image.jpg
|- yet-another-named-folder
|- some-web-page.html
したがって、この例では、私は基本的にコピーするとよいでしょう:
- some.plugin.dll
- some.other.plugin.dll
与えられた出力ディレクトリに、モジュールディレクトリから私は取ると思う:
- いくつかの名前のフォルダ(およびすべてのコンテンツ)
- 別の名前のフォルダ(およびすべてのコンテンツ)
- まだ別の名前のフォルダ(およびすべてのコンテンツ)
そのすべてを別の出力ディレクトリに入れてください。
私はこれを行うにしようとしていた。
<copy todir="${dir.projects.dynamic.binaries}">
<fileset basedir="${dir.plugins}/**/binaries">
<include name="*.plugin.dll" />
</fileset>
</copy>
<copy todir="${dir.projects.dynamic.modules}">
<fileset basedir="${dir.plugins}/**/modules">
<include name="**/*" />
</fileset>
</copy>
私はファイルセットのbasedirには、**または他の無効記号を含めることができないことを私に告げるエラーを取得しておくが。あなたがファイルセットベースでパターンを使うことができるかしないかに関しては、ドキュメントは少し曖昧ですが、私はこのエラーの後にはできないと仮定しています。
問題は、私が代わりにこの方法を行うにした場合:
<copy todir="${dir.projects.dynamic.binaries}">
<fileset basedir="${dir.plugins}">
<include name="**/binaries/*.plugin.dll" />
</fileset>
</copy>
<copy todir="${dir.projects.dynamic.modules}">
<fileset basedir="${dir.plugins}">
<include name="**/modules/**/*" />
</fileset>
</copy>
しかし、それをコピー親フォルダ、すなわちDummyPlugin1/binaries/some.assembly.dll
、私が欲しいDummyPlugin2/binaries/some.other.plugin.dll
だけではなく、DLL。モジュールと同じです...
DummyPlugin1/binaries、DummyPlugin2/binariesを含むようにbasedirを変更することができますが、ビルドを頻繁に変更しなくても、そこに何個のフォルダがあるかわかりませんスクリプトなので、私はむしろそれをダイナミックに保つので、そこにあるかもしれない、あるいはそうでないかもしれない各プラグインフォルダのコピーを作るのではなく、プラグインとモジュールがそこにあります。
私のケーキを食べてここで食べる方法はありますか?
問題は、私は、ディレクトリそのままモジュール内からフォルダ構造を維持する必要がありますです。そこに私はルートフォルダとすべての内容をファイルのセットだけではなくコピーしています。 – Grofit
おそらく、NAnt 'foreach'を使って別々のファイルセットを生成する方が適していますか?最初にディレクトリのファイルセットを取得し、それを繰り返し実行します。 – skolima
どのように動作するかを示すための例やリンクがありますか、最近Nantのドキュメントは少し疎です。私はRakeを使うつもりだったが、ルビーとレーキに依存することを望んでいなかった。 – Grofit