mirror of
https://github.com/apache/ant.git
synced 2025-05-18 14:04:48 +00:00
git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@518952 13f79535-47bb-0310-9956-ffa450edef68
262 lines
9.9 KiB
HTML
262 lines
9.9 KiB
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
|
|
|
|
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>Checksum Task</title>
|
|
</head>
|
|
|
|
<body>
|
|
|
|
<h2><a name="checksum">Checksum</a></h2>
|
|
<h3>Description</h3>
|
|
<p>
|
|
Generates checksum for files. This task can also be used to
|
|
perform checksum verifications.
|
|
</p>
|
|
|
|
<p>Note that many popular message digest functions - including MD5 and
|
|
SHA-1 - have been broken recently. If you are going to use the task
|
|
to create checksums used in an environment where security is
|
|
important, please take some time to investigate the algorithms offered
|
|
by your JCE provider. Note also that some JCE providers like the one
|
|
by <a href="http://www.bouncycastle.org/">The Legion of the Bouncy
|
|
Castle</a>, the <a href="http://www.gnu.org/software/gnu-crypto/">GNU
|
|
project</a> or <a
|
|
href="http://jce.iaik.tugraz.at/products/01_jce/index.php">the
|
|
Technical University Graz</a> offer more digest algorithms than those
|
|
built-in into your JDK.</p>
|
|
|
|
<p>
|
|
Warning: the case of the extension is that of the algorithm used.
|
|
If you ask for "SHA1", you get a .SHA1 extension; if you ask for "sha1", you
|
|
get a file ending in .sha1. The Java Crypto Engines are case-insensitive
|
|
in matching algorithms, so choose a name to match your desired output extension,
|
|
or set the <tt>fileext</tt> attribute.
|
|
</p>
|
|
|
|
<h3>Parameters</h3>
|
|
<table border="1" cellpadding="2" cellspacing="0">
|
|
<tr>
|
|
<td valign="top"><b>Attribute</b></td>
|
|
<td valign="top"><b>Description</b></td>
|
|
<td align="center" valign="top"><b>Required</b></td>
|
|
</tr>
|
|
<tr>
|
|
<td valign="top">file</td>
|
|
<td valign="top">The file to generate checksum for.</td>
|
|
<td valign="top" align="center">One of either <var>file</var> or
|
|
at least one nested (filesystem-only) resource collection.</td>
|
|
</tr>
|
|
<tr>
|
|
<td valign="top">todir</td>
|
|
<td valign="top">The root directory where checksums should be written.</td>
|
|
<td valign="top" align="center">No. If not specified, checksum files
|
|
will be written to the same directory as the files themselves.
|
|
<em>since Ant 1.6</em>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td valign="top">algorithm</td>
|
|
<td valign="top">Specifies the algorithm to be used to
|
|
compute the checksum. Defaults to "MD5".
|
|
Other popular algorithms like "SHA" may be used
|
|
as well.
|
|
</td>
|
|
<td valign="top" align="center">No</td>
|
|
</tr>
|
|
<tr>
|
|
<td valign="top">provider</td>
|
|
<td valign="top">Specifies the provider of the algorithm.</td>
|
|
<td valign="top" align="center">No</td>
|
|
</tr>
|
|
<tr>
|
|
<td valign="top">fileext</td>
|
|
<td valign="top">The generated checksum file's name will be the
|
|
original filename with the fileext added to it.
|
|
Defaults to a "." and the algorithm name being used.
|
|
</td>
|
|
<td valign="top" align="center">No</td>
|
|
</tr>
|
|
<tr>
|
|
<td valign="top">property</td>
|
|
<td valign="top">This attribute can mean two different things, it
|
|
depends on the presence of the verifyproperty attribute.<br>
|
|
<b>If you don't set the verifyproperty attribute</b>, property
|
|
specifies the name of the property to be set with the generated
|
|
checksum value.<br>
|
|
<b>If you set the verifyproperty attribute</b>, property specifies
|
|
the checksum you expect to be generated (the checksum itself, not
|
|
a name of a property containing the checksum).<br>
|
|
This cannot be specified when fileext is being used or when the
|
|
number of files for which checksums is to be generated is greater
|
|
than 1.
|
|
</td>
|
|
<td valign="top" align="center">No</td>
|
|
</tr>
|
|
<tr>
|
|
<td valign="top">pattern</td>
|
|
<td valign="top">Specifies the pattern to use as a pattern
|
|
suitable for <a
|
|
href="http://java.sun.com/j2se/1.4.2/docs/api/java/text/MessageFormat.html">MessageFormat</a>
|
|
where <code>{0}</code> is replaced with the checksum and
|
|
<code>{1}</code> with the file name.</td>
|
|
<td valign="top" align="center">No - default is "{0}".</td>
|
|
</tr>
|
|
<tr>
|
|
<td valign="top">format</td>
|
|
<td valign="top">Specifies the pattern to use as one of a
|
|
well-known format. Supported values are
|
|
<table border="1">
|
|
<tr>
|
|
<th>name</th>
|
|
<th>pattern</th>
|
|
<th>description</th>
|
|
</tr>
|
|
<tr>
|
|
<td>CHECKSUM </td>
|
|
<td><tt>{0}</tt></td>
|
|
<td>only the checksum itself </td>
|
|
</tr>
|
|
<tr>
|
|
<td>MD5SUM </td>
|
|
<td><tt>{0} *{1}</tt></td>
|
|
<td>the format of GNU textutils md5sum</td>
|
|
</tr>
|
|
<tr>
|
|
<td>SVF </td>
|
|
<td><tt>MD5 ({1}) = {0}</tt></td>
|
|
<td>the format of BSDs md5 command </td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td valign="top" align="center">No - default is "CHECKSUM".</td>
|
|
</tr>
|
|
<tr>
|
|
<td valign="top">totalproperty</td>
|
|
<td valign="top">If specified, this attribute specifies the name of
|
|
the property that will hold a checksum of all the checksums and
|
|
file paths. The individual checksums and the relative paths to the files
|
|
within the resource collections in which they are defined will be used to
|
|
compute this checksum. (The file separators in the paths will be
|
|
converted to '/' before computation to ensure platform portability).
|
|
<em>since Ant 1.6</em>
|
|
</td>
|
|
<td valign="top" align="center">No</td>
|
|
</tr>
|
|
<tr>
|
|
<td valign="top">forceoverwrite</td>
|
|
<td valign="top">Overwrite existing files even if the destination
|
|
files are newer. Defaults to "no".</td>
|
|
<td valign="top" align="center">No</td>
|
|
</tr>
|
|
<tr>
|
|
<td valign="top">verifyproperty</td>
|
|
<td valign="top">Specifies the name of the property to be set
|
|
with "true" or "false" depending upon whether
|
|
the generated checksum matches the existing checksum. When
|
|
this is set, the generated checksum is not written to a file or
|
|
property, but rather, the content of the file or property is used to
|
|
check against the generated checksum.
|
|
<td valign="top" align="center">No</td>
|
|
</tr>
|
|
<tr>
|
|
<td valign="top">readbuffersize</td>
|
|
<td valign="top">The size of the buffer (in bytes) to use when
|
|
reading a file. Defaults to "8192" - you may get a
|
|
better performance on big files if you increase this value.</td>
|
|
<td valign="top" align="center">No</td>
|
|
</tr>
|
|
</table>
|
|
<h3>Parameters specified as nested elements</h3>
|
|
|
|
<h4>resource collection</h4>
|
|
<p>
|
|
<a href="../CoreTypes/resources.html#collection">Resource collections</a> are
|
|
used to select files for which checksums should be generated.
|
|
</p>
|
|
|
|
<h3>Examples</h3>
|
|
<p><b>Example 1</b></p>
|
|
<blockquote><pre><checksum file="foo.bar"/></pre></blockquote>
|
|
Generates a MD5 checksum for foo.bar and stores the checksum in the destination file
|
|
foo.bar.MD5. foo.bar.MD5 is overwritten only if foo.bar is newer than itself.
|
|
|
|
<p><b>Example 2</b></p>
|
|
<blockquote><pre><checksum file="foo.bar" forceOverwrite="yes"/></pre></blockquote>
|
|
Generates a MD5 checksum for foo.bar and stores the checksum in foo.bar.MD5.
|
|
If foo.bar.MD5 already exists, it is overwritten.
|
|
|
|
<p><b>Example 3</b></p>
|
|
<blockquote><pre><checksum file="foo.bar" property="foobarMD5"/></pre></blockquote>
|
|
Generates a MD5 checksum for foo.bar and stores it in the Project Property foobarMD5.
|
|
|
|
<p><b>Example 4</b></p>
|
|
<blockquote><pre><checksum file="foo.bar" verifyProperty="isMD5ok"/></pre></blockquote>
|
|
Generates a MD5 checksum for foo.bar, compares it against foo.bar.MD5 and sets
|
|
isMD5ok to either true or false, depending upon the result.
|
|
|
|
<p><b>Example 5</b></p>
|
|
<blockquote><pre><checksum file="foo.bar" algorithm="SHA" fileext="asc"/></pre></blockquote>
|
|
Generates a SHA checksum for foo.bar and stores the checksum in the destination file
|
|
foo.bar.asc. foo.bar.asc is overwritten only if foo.bar is newer than itself.
|
|
|
|
<p><b>Example 6</b></p>
|
|
<blockquote><pre>
|
|
<checksum file="foo.bar" property="${md5}" verifyProperty="isEqual"/>
|
|
</pre></blockquote>
|
|
Generates a MD5 checksum for foo.bar, compares it against the value of the property
|
|
md5, and sets isEqual to either true or false, depending upon the result.
|
|
|
|
<p><b>Example 7</b></p>
|
|
<blockquote><pre>
|
|
<checksum>
|
|
<fileset dir=".">
|
|
<include name="foo*"/>
|
|
</fileset>
|
|
</checksum>
|
|
</pre></blockquote>
|
|
Works just like Example 1, but generates a .MD5 file for every file that begins with the name foo.
|
|
|
|
<p><b>Example 8</b></p>
|
|
<blockquote><pre>
|
|
<condition property="isChecksumEqual">
|
|
<checksum>
|
|
<fileset dir=".">
|
|
<include name="foo.bar"/>
|
|
</fileset>
|
|
</checksum>
|
|
</condition>
|
|
</pre></blockquote>
|
|
Works like Example 4, but only sets isChecksumEqual to true, if the
|
|
checksum matches - it will never be set to false. This example
|
|
demonstrates use with the Condition task.
|
|
|
|
|
|
<h3>Note:</h3>
|
|
When working with more than one file, if condition and/or verifyproperty is used,
|
|
the result will be true only if the checksums matched correctly for all files being
|
|
considered.
|
|
|
|
|
|
|
|
</body>
|
|
</html>
|
|
|