「WARファイル」ページには、現行プロジェクトのHTMLルート・ディレクトリの内容が表示されます。デフォルトでは、Webアプリケーション・アーカイブ(WAR)ファイルを生成するたびに、HTMLルート・ディレクトリ全体がデプロイされます。
デプロイメントに含めない項目を除外する選択規則を作成できます。たとえば、開発中にルート・ディレクトリに作成された余分なJSPまたはHTMLファイルをデプロイしない場合、該当するファイルを除外する選択規則を作成します。これにより、ファイルはルート・ディレクトリに残りますが、デプロイされません。
このタブでの変更は、項目を除外するために単純なチェックボックスを使用できる「ディレクトリの表示」タブに反映されます。「規則の表示」タブで変更を行った後、含まれるかまたは除外されるファイルを「ディレクトリの表示」タブで確認できます。
選択規則では、次の2つのワイルド・カードを使用します。
*
は、 /
以外の任意の文字に一致します。**
は、 /
を含む任意の文字に一致します。次の構文規則に注意してください。
/
は、ディレクトリ階層を示します。これは、Windowsにも適用されます。**
は、任意の /
と一致するため、**
を使用することでディレクトリ・ツリーの任意の深さに存在するファイル名またはディレクトリ名を指定できます。たとえば、次の選択規則を使用すると、ディレクトリ構造の任意の場所に存在する、CVS
という名前のすべてのディレクトリを除外できます。
Exclude **/CVS/
選択規則は「規則の表示」タブに出現する順序で評価され、項目に最初に一致した規則が使用されます。選択規則の間に競合がある場合は、それを解決することが重要になります。たとえば、次のような複数の規則のリストがあるとします。
Include one/two/
Exclude one/
Include **
この場合、one/two/
ディレクトリ・ツリーのすべての内容が含まれると同時に、one/two/
以外の内容もone/
を除きすべて含まれます。
*
、**
および /
を除くすべての文字は、リテラルとしてそのまま一致に使用されます。Windowsを含め、一致では大/小文字が区別されます。
次に例を示します。
Include drugstore/**.keep
Include drugstore/CVS/
Exclude **/CVS
Exclude **.keep
Include **
この規則のセットでは、drugstore/CVS
は含まれますが、それ以外のすべてのCVSディレクトリは除外されます。また、drugstoreツリーにあるすべての .keep
ファイルは含まれますが、それ以外のすべての .keep
ファイルは除外されます。この規則以外では、その他のすべてのファイルが含まれます。
リテラル文字を使用すると、選択規則の範囲は非常に限定されます。次に例を示します。
Include index.html
この規則では、index.html
というファイルのみが含まれ、それ以外は除外されます。
完全に空の規則のリストでは、何も選択されません。これは、Exclude **
という規則と同じになります。
/
は、選択規則の定義の始めに使用しないでください。選択パターンの照合では、HTMLルート・ディレクトリに対する相対パスが使用されます。 /
で始まるパターンには何も一致しません。
その他の例:
Include one/**/two/*.gif
この規則では、one
ディレクトリ・ツリーにあるtwo
という名前のすべてのディレクトリのすべてのGIF
ファイルが含まれます。したがって、one/two/foo.gif
やone/three/four/five/two/foo.gif
などが含まれます。
Exclude **.keep
この規則では、すべてのディレクトリのすべての .keep
ファイルが除外されます。
これに対し、Exclude *.keep
という規則では、ルート・ディレクトリにある .keep
ファイルのみが除外されます。
Include a/**/z
のような規則を作成すると、照合する内容が存在するようになる場合、JDeveloperによって2つのスラッシュが1つのスラッシュにまとめられます。したがって、この規則では、a/b/c/z
やa/z
などが一致します。
高度なトピック: 再帰的バックトラッキングおよび最短一致ワイルド・カード
パターン一致ロジックに精通している場合、これらの選択規則に対して実行される一致処理に、最短一致ワイルド・カードによる再帰的バックトラッキングが使用されていることを理解すると役に立ちます。ワイルド・カードが最短一致で機能するという事実は、次のような規則を使用する場合に重要です。
Include one/**/two/**/three
この規則を使用して、one/two/three/two/three/two/three
という一致対象をテストすると、ワイルド・カードは最短一致で機能するため、最初の**
はどの文字にも一致せず、2番目の**
がthree/two/three/two
に一致します。