3

大規模なサーバー プロジェクトの一環として、ANT パターン パーサーに取り組んでいます。

この投稿への回答には、ANT パターンの良い例がいくつかあります: Nant/Ant 命名パターンを使用するにはどうすればよいですか? ただし、いくつかの可能な順列についてはまだ混乱しています。

http://nant.sourceforge.net/release/0.85/help/types/fileset.htmlの ANT パターン ドキュメントの例の 1 つは次のとおりです。

**/test/** ファイル名としての test を含め、パスに test 要素を持つすべてのファイルに一致します。

私の理解では、**1 つ以上のディレクトリと、それらのディレクトリの下のファイルにも一致します。したがって、 and と**/test/**一致することが期待されますが、このステートメントは、 という名前のファイルにも一致することを暗示しているようです。パターンにafterがありますが、これは正しいですか?src/test/subfolder/file.txttest/file2.txtsrc/test/test

また、次のパターンが有効かどうかも明確ではありません。

folder**
folder1/folder**
**folder/file.txt

私は彼らが同じように働くと想像します

folder*/**
folder1/folder*/**
**/*folder/file.txt

しかし、それらは許可されていますか?

4

1 に答える 1

6

coolcfanの提案に従って NAnt でいくつかのテストを行い、自分の質問に答えました。質問のパターンはすべて有効です。

上記の私の質問のリンクからの次のファイルに基づいています。

  1. bar.txt
  2. src/bar.c
  3. src/baz.c
  4. ソース/テスト/bartest.c

次の予期しないパターンも有効です。

  • src**                      マッチ 2、3、4
  • **.c                        2、3、および 4 に一致
  • **ar.*                    マッチ1と2
  • **/bartest.c/**  マッチ 4
  • src/ba?.c/**        マッチ2と3

完全を期すために、これらは上記の私の質問のリンクから取得した次のパターンに追加されています。

  • *.c             何にも一致しません (現在のディレクトリに .c ファイルがありません)
  • src/*.c     マッチ2と3
  • */*.c         2 と 3 に一致します (* は 1 つのレベルにのみ一致するため)
  • **/*.c       2、3、および 4 に一致します (** は任意の数のレベルに一致するため)
  • bar.*         マッチ 1
  • **/bar.*   マッチ1と2
  • **/bar*.*1、2、および 4 に一致
  • src/ba?.cマッチ2と3    
于 2013-08-14T13:36:34.950 に答える