モジュールの作成

モジュールは、Validate の「プロジェクト管理」領域で作成します。

  1. 「プロジェクト」のリストが表示されていない場合は、左上の [プロジェクト] をクリックします。
  2. リストで自分のプロジェクトをクリックします。右側にプロジェクトの詳細が表示されます。
  3. プロジェクトの詳細で [モジュール] をクリックします。
  4. [新しいモジュールの作成] をクリックします。
  5. [モジュール名] には、モジュールの名前 (たとえば、My Tools など) を入力します。

    モジュールの名前は 64 文字以内とし、アポストロフィ (') と二重引用符 (") を同時に含めることはできません。

  6. [アクセス] では、アクセス制御が設定されている場合は、誰がこのモジュールのソースコードを閲覧できるかを制御することができます。ユーザーはプロジェクトの「ソースファイルにアクセス」するための権限も必要であることに注意してください。
    • [すべて許可] では、どのユーザーでもこのモジュールのソースコードを閲覧できる汎用規則が設定されます。
    • [すべて拒否] では、すべてのユーザーに対してこのモジュール内のソースコードの閲覧を禁止する汎用規則が設定されます。
    • [ユーザーを許可] フィールドでは、特定のユーザーに対してソースコードへのアクセスを許可できます。
    • [ユーザーを拒否] フィールドでは、特定のユーザーによるソースコードへのアクセスを拒否できます。

    たとえば、モジュールのソースコードへのアクセスを jsmith にのみ許可する場合は、ドロップダウンメニューから [すべて拒否] を選択し、[ユーザーを許可] フィールドに jsmith と入力します。

  7. [パターンタイプ] では、[glob] または [regex] を選択します。
    以下のような標準正規表現文字がサポートされています。
    • .*:/ または \ を含む、任意の数のパスの 0 回以上の出現と一致
    • .+:/ または \ を含む、任意の数のパスの 1 回以上の出現と一致
    • [^/]*:Linux 内の任意の単一のファイルまたはディレクトリと一致
    • [^\\]*:Windows 内の任意の単一のファイルまたはディレクトリと一致
    • \\:Windows パス区切り文字と一致
    • /:Linux パス区切り文字と一致
    • .:任意の 1 文字 (ドットを含む) と一致
    • \\.:リテラルドットと一致
  8. 例 1

    指定されたパス:/space/workspaces/cvs/ccvs.1.11.18/diff/diff.c

    .*diff.*

    パスの任意の部分にテキスト diff が含まれます。

    .*/ccvs.1.11.18/diff/diff.c

    ドットとアスタリスクの組み合わせは任意の数のパスに一致するため、一致するもの (この場合は、/space/workspaces/cvs) が返されます。

    [^/]*/ccvs.1.11.18/diff/diff.c

    [^/]* はフォワードスラッシュ以外の任意のもの (つまり、単一のファイルまたはディレクトリのみ) に一致するため、一致するものは返されません。

    例 2

    指定されたパス:/space/workspaces/cvs/ccvs.1.11.18/diff/diff.c

    /space/workspaces/cvs/ccvs.1.11.[^/]*/diff/diff.c

    [^/]* はテキスト 18 に一致するため、これは、マイナーバージョン番号に関係なく、パス /space/workspaces/cvs/ccvs.1.11.18/ にある特定のファイルに一致します。

    /space/workspaces/cvs/ccvs.1.11..*

    これは、同じパスにあるすべてのファイルと一致します。

    例 3

    指定されたパス:/space/workspaces/cvs/ccvs.1.11.18/diff/diff.c

    .*/ccvs.1.11.18/.*/s[^/]*

    これは、ccvs.1.11.18 および任意の中間ディレクトリにある文字 s で始まるすべてのファイルと一致します。

    .*/ccvs.1.11.18/.*/[^/]*s[^/]*

    これは、ccvs.1.11.18 および任意の中間ディレクトリにある文字 s を含むすべてのファイルと一致します。

    例 4

    指定されたパス: /a/b*c/d/

    /a/b\*c/d/

    Windows および Linux ではパスの指定にアスタリスクを文字として使用できるため、エスケープされたアスタリスク \* が、文字 * を含むパスの検索に使用されます。

    指定されたパス: C:\path1\path2\dir\file*abc.c

    C:\\path1\\path2\\dir\\file\*abc.c

    例 5

    指定されたパス: /a/b!c/d/

    /a/b!c/d/

    正規表現では、! をエスケープする必要はありません。

    例 6

    指定されたパス: /**/sub!*folder/test.c

    /\*\*/sub!\*folder/test.c

    連続する文字列内の各アスタリスクをそれぞれバックスラッシュでエスケープする必要があります。

    例 7

    指定された Linux ファイルパス:/space/workspaces/cvs/ccvs.1.11.18/diff/file1.c および /space/workspaces1/cvs/ccvs.1.11.18/diff1/file2.c

    .*/cvs/.*

    指定された Windows ファイルパス:C:\space\workspaces\cvs\ccvs.1.11.18\diff\file.c および C:\space\workspaces\cvs\ccvs.1.11.19\diff\file1.c

    .*\\cvs\\.*

    .* は 0 個以上のパスに一致するため、これは一致します。

    例 8

    指定された Linux ファイルパス:/space/workspaces/cvs/ccvs.1.11.18/diff/file1.c および /space/workspaces1/cvs/ccvs.1.11.18/diff/file2.c

    .*/diff/[^/]*

    指定された Windows ファイルパス:C:\space\workspaces\cvs\ccvs.1.11.18\diff\file2.c および C:\space\workspaces\cvs\ccvs.1.11.18\diff\file1.c

    .*\\diff\\[^\\]*

    [^/]* は任意の単一のファイル名またはディレクトリ名と一致するため、これは一致します。

    例 9

    指定されたパス: /space/workspaces/cvs/ccvs.1.11.18/DifF/diff.c

    .*/(?i)diff/diff.c

    diff は大文字と小文字を区別せずに一致するため、これは一致します。

    例 10

    パスに正規表現文字が使用されている場合は、必ずバックスラッシュでエスケープしてください。例:

    指定されたファイルパス:path1/path2+dir/file.c

    .*path2\+dir/file.c

    ここでは + がリテラル文字として使用されているため、これは一致します。

    指定されたパス:path1/(bracket|fun)/file.c

    .*\(bracket\|fun\)/file.c

    (、|、および ) はバックスラッシュでエスケープされるため、これは一致します。

    指定されたパス:path1/path2/filecc and path1/path2/file.c

    .*path2/file.c

    ドットは何にでも一致するため、これは一致します。

    指定されたパス:path1/path2/filecc

    .*path2/file\\.c

    ドットはパターン内でリテラルとして扱われるため、これは一致しません。

  9. [パスパターン] では、ツリー選択を使用するか、またはパスパターンを指定するか、2 つのいずれかの方法によってパスを指定することができます。
    パスのパターンとツリーの選択はリアルタイムでは更新されません。2 つの選択肢を切り替える場合、モジュールを保存するまで変更内容は反映されません。
    • ツリーの選択を使用をしたい場合は、[ツリーの使用] オプションを選択します。ファイルツリーが表示され、ここで、モジュールの一部として含めたいフォルダーまたはファイルを具体的に選択できます。
    • 代替方法として、パスのパターンを使用できます。[パスのパターン] フィールドで、ファイルの絶対パスまたはパスのパターンを入力します。これはデフォルトの動作です。このモジュールにさらにファイルパスを追加するには、[追加] をクリックします。
    • 非常に長いパスリストが作成されないように、できるだけ正規表現を含んだパスパターンを使用してください。システムが処理できるパス長には限度があります。パス長は 30,000 文字までに制限することをお勧めします。

    通常の正規表現スタイルのワイルドカードでは、特定のパスをアクセスルールに含めたり、アクセスルールから除外したりできます。単一 * および二重 ** アスタリスクパス照合により、パス選択に十分な特異性を持たせ、顧客コードベース内の個々のパスの決定的なアクセス権限制御が可能になります。ソースファイルへのパスがビルドごとに変わる場合は、ワイルドカードとしてアスタリスクを使用できます。

    • 非再帰的に検索するには、単一のアスタリスク * を使用します。これにより、現在のパスレベル内の検索語のみが照合されます。
    • 再帰的に検索するには、2 つのアスタリスク ** を使用します。これにより、現在のパスレベルとそのサブディレクトリ内の検索語が照合されます。* 文字を含むパスを検索するには、エスケープされたアスタリスク !* を使用します。

    ! 文字を含むパスを検索するには、エスケープされた感嘆符 !! を使用します。

    * および ** ワイルドカードは *! 文字にも一致します。

    例 1

    ファイルパスが /space/workspaces/cvs/ccvs.1.11.18/diff/diff.c だとすると:

    diff  
    

    これには、パスの任意の部分にテキスト diff が含まれます。

    **/ccvs.1.11.18/diff/diff.c   
    

    二重のアスタリスクは、任意の数のパスに一致するため、これは一致が返されます (この場合は /space/workspaces/cvs)。

    */ccvs.1.11.18/diff/diff.c
    

    1 つのアスタリスクは 1 つのファイルまたはディレクトリにのみ一致するため、これは一致を返しません。

    **/diff/**

    先頭の二重アスタリスクは /space/workspaces/cvs/ccvs.1.11.18 に一致し、末尾の二重アスタリスクは diff ディレクトリ以降のすべてのファイルに一致します。

    例 2

    ファイルパスが /space/workspaces/cvs/ccvs.1.11.18/diff/diff.c だとすると:

    /space/workspaces/cvs/ccvs.1.11.*/diff/diff.c

    * はテキスト 18 に一致するため、これはマイナーバージョン番号に関係なく、パス /space/workspaces/cvs/ccvs.1.11.18/ にある特定のファイルに一致します。

    /space/workspaces/cvs/ccvs.1.11.**

    これは、同じパスにあるすべてのファイルと一致します。

    例 3

    ファイルパスが /space/workspaces/cvs/ccvs.1.11.18/diff/diff.c だとすると:

    **/ccvs.1.11.18/**/s*

    これは、ccvs.1.11.18 および任意の中間ディレクトリにある文字 s で始まるすべてのファイルと一致します。

    **/ccvs.1.11.18/**/*s*

    これは、ccvs.1.11.18 および任意の中間ディレクトリにある文字 s を含むすべてのファイルと一致します。

    例 4

    ファイルパスが /a/b*c/d/ だとすると:

    /a/b!*c/d/

    Windows および Linux ではパス指定にアスタリスクを文字として使用できるため、エスケープされたアスタリスク !* は、* 文字を含むパスを検索するために使用されます。

    例 5

    ファイルパスが /a/b!c/d/ だとすると:

    /a/b!!c/d/

    ! 文字を含むパスを検索するには、エスケープされた感嘆符 !! を使用します。

    例 6

    ファイルパスが /a/b!*c/d/ だとすると:

    /a/b!!!*c/d/

    フォルダーパスには連続した文字列が含まれるため、パス内の一意の文字をそれぞれ感嘆符でエスケープする必要があります。

    ファイルパスが /**/sub!*folder/test.c だとすると:

    /!*!*/sub!!!*folder/test.c

    連続する文字列内の各アスタリスクは、それぞれ感嘆符でエスケープする必要があります。

  10. [タグ] フィールドを使用して、後でモジュールリストのフィルター処理に役立つ情報を追加します。
  11. [作成] をクリックして新しいモジュールを保存します。