次の build.xml 文字列を取得しました。
<jar destfile="${lib.dir}/rpt.jar" basedir="${classes.src}" excludes="**/*.java" />
私は Ant を初めて使用し、excludes string がどのように機能するかを理解していません。どのファイルが影響を受けますか? すべてのJavaソースファイル?
ありがとう。
まずは発言について
<jar destfile="${lib.dir}/rpt.jar" basedir="${classes.src}" excludes="**/*.java" />
このターゲットは、jar アーカイブ内にファイルをパッケージ化するために使用されます
destfile : 宛先ファイル (作成されるアーカイブ) の名前と場所を指定します。
basedir : パッケージ化する必要のあるファイルのベース ディレクトリを指定します。すべてのファイルとサブフォルダーが含まれることに注意してください
excludes : これは、パッケージ (jar) 内で不要なファイルを basedir から除外するために使用されます。
今あなたの質問に
上記のステートメントが行うことは、classes.src 内のすべてのファイルを $(lib.dir)/rpt.jar にパッケージ化しますが、basedir のサブ フォルダーまたはサブ フォルダー内にある .java ファイルを除外します。
EDIT : この exclude="* / .java" は、通常、使用、配布、エクスポートなどされる jar からソース コードを除外するために行われます。
はい、あなたのコードでは、すべての Java ファイルが除外されています。パターン定義を見てみましょう:このページでは、Ant パターンがどのように機能するかをかなりよく説明しています。また、それを示す多くの例が含まれています。パターンはいたるところで使用されるため、Ant を使い続ける場合は、パターンを理解する必要があります。
基本的にはすべての**
サブディレクトリを意味します。And/*.java
は、これらのディレクトリ内のすべての Java ファイルを意味します。
<jar destfile="${lib.dir}/rpt.jar" basedir="${classes.src}" excludes="**/*.java" />
と同等です
<jar destfile="${lib.dir}/rpt.jar">
<fileset dir="${classes.src}" excludes="**/*.java" />
</jar>
つまり、${classes.src}
ディレクトリとそのサブディレクトリの.java
すべてのファイルが含まれますが、末尾が .