4

次の build.xml 文字列を取得しました。

<jar destfile="${lib.dir}/rpt.jar" basedir="${classes.src}" excludes="**/*.java" />

私は Ant を初めて使用し、excludes string がどのように機能するかを理解していません。どのファイルが影響を受けますか? すべてのJavaソースファイル?

ありがとう。

4

3 に答える 3

6

まずは発言について

<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 からソース コードを除外するために行われます。

于 2012-10-03T11:50:59.420 に答える
5

はい、あなたのコードでは、すべての Java ファイルが除外されています。パターン定義を見てみましょう:このページでは、Ant パターンがどのように機能するかをかなりよく説明しています。また、それを示す多くの例が含まれています。パターンはいたるところで使用されるため、Ant を使い続ける場合は、パターンを理解する必要があります。

基本的にはすべての**サブディレクトリを意味します。And/*.javaは、これらのディレクトリ内のすべての Java ファイルを意味します。

于 2012-10-03T11:40:51.273 に答える
2
<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すべてのファイルが含まれますが、末尾が .

于 2012-10-03T11:41:46.647 に答える