非推奨

このタスクは非推奨です。代わりに、zipfileset または zipgroupfilesetJar タスク または Zip タスク と一緒に使用します。JDK の jlink ツールに基づくタスクの場合は、Link を参照してください。

説明

JDK の jlink ツールに基づくタスクの場合は、Link を参照してください。このタスクは全く別のものです。

サブビルドおよびライブラリのエントリをリンクします。

jlink タスクは、jar タスクと同様に、jar ファイルと zip ファイルのビルドに使用できます。ただし、jlink は、入力ファイルからのエントリを出力ファイルに追加する方法を制御するためのオプションを提供します。特に、複数の zip または jar ファイルからエントリをマージする機能があります。

マージファイルが直接指定されている場合(たとえば、mergefiles パスの要素の最上位レベルで)、かつ そのマージファイルが .zip または .jar で終わる場合、マージファイル内のエントリは outfile にマージされます。他の拡張子を持つファイルは、mergefiles 要素で指定された場合でも、出力ファイルに追加されます。mergefiles 要素または addfiles 要素で指定されたディレクトリは、予想どおりに出力ファイルに追加されます。すなわち、サブディレクトリ内のすべてのファイルが適切なプレフィックスを使用して出力ファイルに再帰的に追加されます(マージなし)。

重複するエントリやファイルがマージまたは追加するファイルの中に見つかった場合、jlink は最初のエントリをマージまたは追加し、その後のエントリはすべて無視します。

jlinkmergefiles 内の META-INF ディレクトリを無視します。ユーザーは、出力ファイル用の独自のマニフェスト情報を提供する必要があります。

jlink するファイルのセットを絞り込むことができます。これは、addfiles 要素と mergefiles ネストされた要素の includesincludesfileexcludesexcludesfile、および defaultexcludes 属性を使用して行うことができます。includes または includesfile 属性を使用して、パターンを使用して含めるファイル群を指定します。 exclude または excludesfile 属性は、除外するファイルを指定するために使用されます。これもパターンを使用して行います。そして最後に、defaultexcludes 属性を使用して、デフォルトの除外を使用するかどうかを指定できます。ファイルのインクルード/エクスクルードのしくみとパターンの書き方については、ディレクトリベースのタスク に関するセクションを参照してください。このパターンはベースディレクトリを基準にしています。

パラメータ

属性 説明 必須
outfile 出力ファイルのパスです。 はい
compress 出力を圧縮するかどうか。 trueyes、または on は圧縮出力を生成します。 いいえ; 既定値は非圧縮(拡張)出力
mergefiles 可能であれば出力ファイルにマージされるファイルです。 2 つのうちいずれか 1 つ
addfiles 出力に追加されるファイルです。

次の例では、mergefoo.jarmergebar.jar のエントリを out.jar にマージします。 mac.jarpc.jar は、単一のエントリとして out.jar に追加されます。

<jlink compress="false" outfile="out.jar">
   <mergefiles>
     <pathelement path="${build.dir}/mergefoo.jar"/>
     <pathelement path="${build.dir}/mergebar.jar"/>
   </mergefiles>
   <addfiles>
     <pathelement path="${build.dir}/mac.jar"/>
     <pathelement path="${build.dir}/pc.zip"/>
   </addfiles>
</jlink>

上記の非推奨の代替手段

<jar compress="false" destfile="out.jar">
  <zipgroupfileset dir="${build.dir}">
    <include name="mergefoo.jar"/>
    <include name="mergebar.jar"/>
  </zipgroupfileset>
  <fileset dir="${build.dir}">
    <include name="mac.jar"/>
    <include name="pc.jar"/>
  </fileset>
</jar>

ファイル foo.jarbar.classbarnone/myClass.zip の 2 つのエントリが含まれているとします。ファイル foo.jar のパスが build/tempbuild/foo.jar であるとします。次の例では、out.jar にエントリ tempbuild/foo.jar が提供されます。

<jlink compress="false" outfile="out.jar">
   <mergefiles>
     <pathelement path="build/tempbuild"/>
   </mergefiles>
</jlink>

ただし、次の例では、out.jar に最上位レベルのエントリが 2 つ、つまり bar.classbarnone/myClass.zip が生成されます

<jlink compress="false" outfile="out.jar">
   <mergefiles>
     <pathelement path="build/tempbuild/foo.jar"/>
   </mergefiles>
</jlink>