mirror of
https://github.com/apache/ant.git
synced 2025-05-19 06:24:47 +00:00
find . -type f -exec sed -i "s/http:\/\/www.apache.org\/licenses\/LICENSE-2.0/https:\/\/www.apache.org\/licenses\/LICENSE-2.0/" {} \;
154 lines
6.6 KiB
HTML
154 lines
6.6 KiB
HTML
<!DOCTYPE html>
|
|
<!--
|
|
Licensed to the Apache Software Foundation (ASF) under one or more
|
|
contributor license agreements. See the NOTICE file distributed with
|
|
this work for additional information regarding copyright ownership.
|
|
The ASF licenses this file to You under the Apache License, Version 2.0
|
|
(the "License"); you may not use this file except in compliance with
|
|
the License. You may obtain a copy of the License at
|
|
|
|
https://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
Unless required by applicable law or agreed to in writing, software
|
|
distributed under the License is distributed on an "AS IS" BASIS,
|
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
See the License for the specific language governing permissions and
|
|
limitations under the License.
|
|
-->
|
|
<html lang="en">
|
|
<head>
|
|
<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
|
|
<title>JLink Task</title>
|
|
</head>
|
|
<body>
|
|
|
|
<h2 id="jlink">Jlink</h2>
|
|
<h3><em><u>Deprecated</u></em></h3>
|
|
<p><em>This task has been <u>deprecated</u>. Use a <a href="../Types/zipfileset.html">zipfileset</a>
|
|
or <a href="../Tasks/zip.html#zipgroupfileset">zipgroupfileset</a> with
|
|
the <a href="../Tasks/jar.html">Jar task</a> or <a href="../Tasks/zip.html">Zip task</a>
|
|
instead. For a task based on the JDK's jlink tool, see
|
|
<a href="link.html">Link</a>.</em></p>
|
|
|
|
<h3>Description</h3>
|
|
<p><strong>For a task based on the JDK's jlink tool, see
|
|
<a href="link.html">Link</a>. This task is for something else
|
|
entirely.</strong></p>
|
|
|
|
<p>Links entries from sub-builds and libraries.</p>
|
|
|
|
<p>The <code>jlink</code> task can be used to build jar and zip files, similar to
|
|
the <code>jar</code> task. However, <code>jlink</code> provides options for controlling the way
|
|
entries from input files are added to the output file. Specifically, capabilities for merging
|
|
entries from multiple zip or jar files is available.</p>
|
|
|
|
<p>If a mergefile is specified directly (eg. at the top level of a <code>mergefiles</code>
|
|
pathelement) <em>and</em> the mergefile ends in <samp>.zip</samp> or <samp>.jar</samp>, entries in
|
|
the mergefile will be merged into the <var>outfile</var>. A file with any other extension will be
|
|
added to the output file, even if it is specified in the <code>mergefiles</code> element.
|
|
Directories specified in either the <code>mergefiles</code> or <code>addfiles</code> element are
|
|
added to the output file as you would expect: all files in subdirectories are recursively added to
|
|
the output file with appropriate prefixes in the output file (without merging).</p>
|
|
|
|
<p>In the case where duplicate entries and/or files are found among the files to be merged or
|
|
added, <code>jlink</code> merges or adds the first entry and ignores all subsequent entries.</p>
|
|
|
|
<p><code>jlink</code> ignores <samp>META-INF</samp> directories in <var>mergefiles</var>. Users
|
|
should supply their own manifest information for the output file.</p>
|
|
|
|
<p>It is possible to refine the set of files that are being jlinked. This can be done with
|
|
the <var>includes</var>, <var>includesfile</var>, <var>excludes</var>, <var>excludesfile</var>,
|
|
and <var>defaultexcludes</var> attributes on the <code>addfiles</code> and <code>mergefiles</code>
|
|
nested elements. With the <var>includes</var> or <var>includesfile</var> attribute you specify the
|
|
files you want to have included by using patterns. The <var>exclude</var>
|
|
or <var>excludesfile</var> attribute is used to specify the files you want to have excluded. This is
|
|
also done with patterns. And finally with the <var>defaultexcludes</var> attribute, you can specify
|
|
whether you want to use default exclusions or not. See the section
|
|
on <a href="../dirtasks.html#directorybasedtasks">directory based tasks</a>, on how the
|
|
inclusion/exclusion of files works, and how to write patterns. The patterns are relative to
|
|
the <em>base</em> directory.</p>
|
|
|
|
<h3>Parameters</h3>
|
|
<table class="attr">
|
|
<tr>
|
|
<th scope="col">Attribute</th>
|
|
<th scope="col">Description</th>
|
|
<th scope="col">Required</th>
|
|
</tr>
|
|
<tr>
|
|
<td>outfile</td>
|
|
<td>the path of the output file.</td>
|
|
<td>Yes</td>
|
|
</tr>
|
|
<tr>
|
|
<td>compress</td>
|
|
<td>whether or not the output should be compressed. <q>true</q>, <q>yes</q>, or <q>on</q>
|
|
result in compressed output.</td>
|
|
<td>No; defaults to uncompressed (inflated) output</td>
|
|
</tr>
|
|
<tr>
|
|
<td>mergefiles</td>
|
|
<td>files to be merged into the output, if possible.</td>
|
|
<td rowspan="2">Exactly one of the two</td>
|
|
</tr>
|
|
<tr>
|
|
<td>addfiles</td>
|
|
<td class="left">files to be added to the output.</td>
|
|
</tr>
|
|
</table>
|
|
|
|
<h3>Examples</h3>
|
|
|
|
<p>The following will merge the entries in <samp>mergefoo.jar</samp> and <samp>mergebar.jar</samp>
|
|
into <samp>out.jar</samp>. <samp>mac.jar</samp> and <samp>pc.jar</samp> will be added as single
|
|
entries to <samp>out.jar</samp>.</p>
|
|
<pre>
|
|
<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>
|
|
</pre>
|
|
|
|
<p><strong>Non-deprecated alternative to the above:</strong></p>
|
|
<pre>
|
|
<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>
|
|
</pre>
|
|
|
|
<p>Suppose the file <samp>foo.jar</samp> contains two entries: <samp>bar.class</samp>
|
|
and <samp>barnone/myClass.zip</samp>. Suppose the path for file <samp>foo.jar</samp>
|
|
is <samp>build/tempbuild/foo.jar</samp>. The following example will provide the
|
|
entry <samp>tempbuild/foo.jar</samp> in the <samp>out.jar</samp>.</p>
|
|
<pre>
|
|
<jlink compress="false" outfile="out.jar">
|
|
<mergefiles>
|
|
<pathelement path="build/tempbuild"/>
|
|
</mergefiles>
|
|
</jlink></pre>
|
|
|
|
<p>However, the next example would result in two top-level entries in <samp>out.jar</samp>,
|
|
namely <samp>bar.class</samp> and <samp>barnone/myClass.zip</samp></p>
|
|
<pre>
|
|
<jlink compress="false" outfile="out.jar">
|
|
<mergefiles>
|
|
<pathelement path="build/tempbuild/foo.jar"/>
|
|
</mergefiles>
|
|
</jlink></pre>
|
|
|
|
</body>
|
|
</html>
|