| <!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>Sync Task</title> |
| </head> |
| |
| <body> |
| |
| <h2 id="get">Sync</h2> |
| <p><em>Since Apache Ant 1.6</em></p> |
| <h3>Description</h3> |
| |
| <p>Synchronize a target directory from the files defined in one or |
| more <a href="../Types/resources.html#collection">resource collections</a>.</p> |
| |
| <p>Any file in the target directory that has not been matched by at least one of the nested resource |
| collections gets removed. I.e. if you exclude a file in your sources and a file of that name is |
| present in the target dir, it will get removed from the target.</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>todir</td> |
| <td>the target directory to sync with the resource collections</td> |
| <td>Yes</td> |
| </tr> |
| <tr> |
| <td>overwrite</td> |
| <td>Overwrite existing files even if the destination files are newer.</td> |
| <td>No; defaults to <q>false</q></td> |
| </tr> |
| <tr> |
| <td>includeEmptyDirs</td> |
| <td>Copy any empty directories included in the resource |
| collection(s).<br/><strong>Note</strong>: this attribute also controls the behavior for any |
| nested <code><preserveintarget></code> element. If this attribute is <q>false</q> (the |
| default) empty directories that only exist in the target directory will be removed even if |
| they are matched by the patterns of <code><preserveintarget></code>. This can be |
| overridden by <code><preserveintarget></code>'s <var>preserveEmptyDirs</var> |
| attribute.</td> |
| <td>No; defaults to <q>false</q></td> |
| </tr> |
| <tr> |
| <td>failonerror</td> |
| <td>If set to <q>false</q>, log a warning message, but do not stop the build, when one of the |
| nested filesets points to a directory that doesn't exist.</td> |
| <td>No; defaults to <q>true</q></td> |
| </tr> |
| <tr> |
| <td>verbose</td> |
| <td>Log the files that are being copied.</td> |
| <td>No; defaults to <q>false</q></td> |
| </tr> |
| <tr> |
| <td>granularity</td> |
| <td>The number of milliseconds leeway to give before deciding a file is out of date. This is |
| needed because not every file system supports tracking the last modified time to the |
| millisecond level. This can also be useful if source and target files live on separate |
| machines with clocks being out of sync. <em>since Ant 1.6.2</em>.</td> |
| <td>No; default is 0 milliseconds, or 2 seconds on DOS systems.</td> |
| </tr> |
| </table> |
| |
| <h3>Parameters specified as nested elements</h3> |
| |
| <h4>any resource collection</h4> |
| <p><a href="../Types/resources.html#collection">resource collections</a> are used to select groups |
| of files to copy.</p> |
| <p>Prior to Ant 1.7 only <code><fileset></code> has been supported as a nested element.</p> |
| |
| <h4>preserveInTarget</h4> |
| |
| <p><em>Since Ant 1.7.0</em></p> |
| |
| <p>Specifies files or directories that should be kept in the target directory even if they are not |
| present in one of the source directories.</p> |
| |
| <p>This nested element is like a <a href="../Types/fileset.html">FileSet</a> except that it doesn't |
| support the <var>dir</var> attribute and the <var>usedefaultexcludes</var> attribute defaults |
| to <q>false</q>.</p> |
| |
| <h5>Additional parameters</h5> |
| <table class="attr"> |
| <tr> |
| <th scope="col">Attribute</th> |
| <th scope="col">Description</th> |
| <th scope="col">Required</th> |
| </tr> |
| <tr> |
| <td>preserveEmptyDirs</td> |
| <td>Overrules the <var>includeEmptydirs</var> setting for directories matched by this element. |
| If you want to preserve empty directories that are not in your source directory you can either |
| set the task's <var>includeemptydirs</var> attribute or this one. If the two attribute values |
| conflict, this attribute "wins".</td> |
| <td>No; defaults to the value of the task's <var>includeemptydirs</var> attribute</td> |
| </tr> |
| </table> |
| |
| <h3>Examples</h3> |
| |
| <p>Overwrite all files in <samp>site</samp> with newer files from <samp>generated-site</samp>, |
| delete files from <samp>site</samp> that are not present in <samp>generated-site</samp>.</p> |
| |
| <pre> |
| <sync todir="site"> |
| <fileset dir="generated-site"/> |
| </sync></pre> |
| |
| <p>Overwrite all files in <samp>site</samp> with newer files from <samp>generated-site</samp>, |
| delete files from <samp>site</samp> that are not present in <samp>generated-site</samp> but keep all |
| files in any <samp>CVS</samp> sub-directory.</p> |
| |
| <pre> |
| <sync todir="site"> |
| <fileset dir="generated-site"/> |
| <preserveintarget> |
| <include name="**/CVS/**"/> |
| </preserveintarget> |
| </sync></pre> |
| |
| </body> |
| </html> |