第一次提交
This commit is contained in:
commit
8121362a03
4412 files changed
+1091845
No files matched your search
@@ -0,0 +1,176 @@
|
||||
<!--
|
||||
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
|
||||
|
||||
http://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>
|
||||
|
||||
<head>
|
||||
<meta http-equiv="Content-Language" content="en-us">
|
||||
<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
|
||||
<title>Manifest Task</title>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<h2 id="manifest">Manifest</h2>
|
||||
<h3>Description</h3>
|
||||
<p>Creates a manifest file.</p>
|
||||
|
||||
<p>This task can be used to write a Manifest file, optionally replacing or updating an existing
|
||||
file.</p>
|
||||
|
||||
<p>Manifests are processed according to
|
||||
the <a href="https://docs.oracle.com/javase/8/docs/technotes/guides/jar/jar.html" target="_top">Jar
|
||||
file specification</a>. Specifically, a manifest element consists of a set of attributes and
|
||||
sections. These sections in turn may contain attributes. Note in particular that this may result in
|
||||
manifest lines greater than 72 bytes being wrapped and continued on the next line.</p>
|
||||
|
||||
<p>The Apache Ant team regularly gets complaints that this task in generating invalid manifests. By
|
||||
and large, this is not the case: we believe that we are following the specification to the
|
||||
letter. The usual problem is that some third party manifest reader is not following the same
|
||||
specification as well as they think they should; we cannot generate invalid manifest files just
|
||||
because one single application is broken. Java ME runtimes appear to be particularly
|
||||
troublesome.</p>
|
||||
|
||||
<p>If you find that Ant generates manifests incompatible with your runtime, take a manifest it has
|
||||
built, fix it up however you need and switch to using the <a href="zip.html">zip</a> task to create
|
||||
the JAR, feeding in the hand-crafted manifest.</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>file</td>
|
||||
<td>the manifest-file to create/update.</td>
|
||||
<td>Yes</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>mode</td>
|
||||
<td>One of <q>update</q> or <q>replace</q>.</td>
|
||||
<td>No; default is <q>replace</q></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>encoding</td>
|
||||
<td>The encoding used to read the existing manifest when updating. The task will always use
|
||||
UTF-8 when writing the manifest.</td>
|
||||
<td>No; defaults to UTF-8 encoding</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>mergeClassPathAttributes</td>
|
||||
<td>Whether to merge the <code>Class-Path</code> attributes found in different manifests (if
|
||||
updating). If <q>false</q>, only the attribute of the most recent manifest will be
|
||||
preserved. <em>Since Ant 1.8.0</em>.<br/>Unless you also set <var>flattenAttributes</var>
|
||||
to <q>true</q> this may result in manifests containing multiple <code>Class-Path</code>
|
||||
attributes which violates the manifest specification.</td>
|
||||
<td>No; default is <q>false</q></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>flattenAttributes</td>
|
||||
<td>Whether to merge attributes occurring more than once in a section (this can only happen for
|
||||
the <code>Class-Path</code> attribute) into a single attribute. <em>Since Ant
|
||||
1.8.0</em>.</td>
|
||||
<td>No; default is <q>false</q></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<h3>Parameters specified as nested elements</h3>
|
||||
<h4 id="attribute">attribute</h4>
|
||||
<p>One attribute for the manifest file. Those attributes that are not nested into a section will be
|
||||
added to the main section.</p>
|
||||
<table class="attr">
|
||||
<tr>
|
||||
<th scope="col">Attribute</th>
|
||||
<th scope="col">Description</th>
|
||||
<th scope="col">Required</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>name</td>
|
||||
<td>the name of the attribute, must match the regexp <q>[A-Za-z0-9][A-Za-z0-9-_]*</q>.
|
||||
</td>
|
||||
<td>Yes</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>value</td>
|
||||
<td>the value of the attribute.</td>
|
||||
<td>Yes</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<h4>section</h4>
|
||||
<p>A manifest section—you can nest <a href="#attribute">attribute</a> elements into
|
||||
sections.</p>
|
||||
|
||||
<table class="attr">
|
||||
<tr>
|
||||
<th scope="col">Attribute</th>
|
||||
<th scope="col">Description</th>
|
||||
<th scope="col">Required</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>name</td>
|
||||
<td>the name of the section.</td>
|
||||
<td>No, defaults to the main section</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<h3>Examples</h3>
|
||||
|
||||
<p>Create or replace the file <samp>MANIFEST.MF</samp>. Note that the <code>Built-By</code>
|
||||
attribute will take the value of the Ant property <code>${user.name}</code>. The same is true for
|
||||
the <code>${version}</code> and <code>${TODAY}</code> properties. This example produces
|
||||
a <samp>MANIFEST.MF</samp> that
|
||||
contains <a href="https://docs.oracle.com/javase/8/docs/technotes/guides/versioning/spec/versioning2.html#wp90779"
|
||||
target="_top">package version identification</a> for the package <samp>common</samp>.</p>
|
||||
|
||||
<pre>
|
||||
<manifest file="MANIFEST.MF">
|
||||
<attribute name="Built-By" value="${user.name}"/>
|
||||
<section name="common">
|
||||
<attribute name="Specification-Title" value="Example"/>
|
||||
<attribute name="Specification-Version" value="${version}"/>
|
||||
<attribute name="Specification-Vendor" value="Example Organization"/>
|
||||
<attribute name="Implementation-Title" value="common"/>
|
||||
<attribute name="Implementation-Version" value="${version} ${TODAY}"/>
|
||||
<attribute name="Implementation-Vendor" value="Example Corp."/>
|
||||
</section>
|
||||
<section name="common/class1.class">
|
||||
<attribute name="Sealed" value="false"/>
|
||||
</section>
|
||||
</manifest></pre>
|
||||
|
||||
<p>The manifest produced by the above would look like this:</p>
|
||||
|
||||
<pre>
|
||||
Manifest-Version: 1.0
|
||||
Built-By: bodewig
|
||||
Created-By: Apache Ant 1.9
|
||||
|
||||
Name: common
|
||||
Specification-Title: Example
|
||||
Specification-Vendor: Example Organization
|
||||
Implementation-Vendor: Example Corp.
|
||||
Specification-Version: 1.2
|
||||
Implementation-Version: 1.2 September 10, 2013
|
||||
Implementation-Title: common
|
||||
|
||||
Name: common/class1.class
|
||||
Sealed: false</pre>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
Reference in new issue
Block a user