从 URL 获取文件。当 verbose 选项为 on
时,此任务会为每检索到的 100 Kb 显示一个 .
。运行时支持的任何 URL 模式在此处均有效,包括 http:
、https:
、ftp:
和 jar:
。
使用 usetimestamp 选项可以控制下载,以便仅在远程文件比本地副本更新时才获取远程文件。如果没有本地副本,则始终进行下载。下载文件时,下载文件的日期时间将设置为远程日期时间。注意:此日期时间功能仅适用于使用 HTTP 协议进行的下载。
可以指定用户名和密码,在这种情况下,将使用基本(“稍微编码的纯文本”)身份验证。这仅在 HTTPS 链接上安全。
代理。从 Apache Ant 1.7.0 开始,在 Java 5 或更高版本上运行的 Ant 可以使用操作系统的代理设置(如果使用 -autoproxy 命令行选项启用)。对于早期版本的 Java,还有 <setproxy> 任务。如果启用了代理,则如果请求被转发到代理,则针对 localhost 的 <get>
请求可能无法按预期工作。
属性 | 描述 | 必需 |
---|---|---|
src | 要从中检索文件的 URL。 | 是,或嵌套资源集合 |
dest | 存储检索到的文件的文件或目录。 | 是 |
verbose | 显示详细的进度信息 (on|off)。 |
否;默认值为 off |
quiet | 仅记录错误。(true|false)。 |
否;默认值为 false |
ignoreerrors | 记录错误,但不将其视为致命错误。 | 否;默认值为 false |
usetimestamp | 根据本地副本的日期时间有条件地下载文件。仅限 HTTP | 否;默认值为 false |
username | 用于基本 HTTP 身份验证的用户名 | 是,如果设置了 password |
password | 用于基本 HTTP 身份验证的密码 | 是,如果设置了 username |
authenticateOnRedirect | 在重定向后,是否应将凭据也发送到新位置。 从 Ant 1.10.13 开始 |
否;默认值为 false |
maxtime | 单个下载可能花费的最大时间(以秒为单位),否则将中断并视为下载错误。从 Ant 1.8.0 开始 | 否;默认值为 0,表示无限制 |
retries | 打开 URI 的尝试次数。 属性的名称具有误导性,因为 1的值表示“错误时不重试”,而 0的值表示根本不尝试访问 URI。 从 Ant 1.8.0 开始 |
否;默认值为 3 |
skipexisting | 跳过本地文件系统中已存在的文件 从 Ant 1.8.0 开始 |
否;默认值为 false |
httpusecaches | 仅限 HTTP - 如果为 true,则允许在 HttpUrlConnection 级别进行缓存,如果为 false,则关闭缓存。 注意 这只是对底层 UrlConnection 类的提示,实现和代理可以自由地忽略此设置。 |
否;默认值为 true |
useragent | 要发送的 User-Agent HTTP 标头。从 Ant 1.9.3 开始 |
否;默认为 Apache Ant VERSION |
tryGzipEncoding | 当设置为 true时,Ant 会告诉服务器它愿意接受 gzip 编码以减少要传输的数据量并透明地解压缩内容。 将此设置为 true也意味着 Ant 将自动解压缩 .tar.gz 和类似文件。从 Ant 1.9.5 开始 |
否;默认值为 false |
资源集合 用于选择要下载的 URL 组。如果集合包含多个资源,则 dest 属性必须指向目录(如果存在),或者如果不存在,则会创建一个目录。目标文件名使用源 URL 路径的最后一部分,除非您还指定了映射器。
您可以使用嵌套的 mapper 元素定义名称转换。您也可以使用任何 filenamemapper 类型来代替 mapper 元素。
映射器将接收资源的名称作为参数。对于映射器不返回或返回多个映射名称的任何资源,都将跳过。如果返回的名称是相对路径,则它将被视为相对于 dest 属性。
可以将任意数量的 HTTP 标头添加到请求中。
嵌套 <header/>
节点的属性如下
属性 | 描述 | 必需 |
---|---|---|
name | 此标头的名称或键。不能为 null 或为空。将删除前导和尾随空格 | 是 |
value | 要分配给标头的值。不能为 null 或为空。将删除前导和尾随空格 | 是 |
获取 https://ant.apache.org/ 的索引页面,并将其存储在文件 help/index.html 中。
<get src="https://ant.apache.org/" dest="help/index.html"/>
获取 Ant 的(当前和过去的)发布经理的 PGP 密钥(如果本地副本丢失或已过期)。使用 verbose 选项获取进度信息。
<get src="https://www.apache.org/dist/ant/KEYS" dest="KEYS" verbose="true" usetimestamp="true"/>
从具有访问控制的服务器获取一些文件。由于正在使用 HTTPS,因此如果您忽略它作为构建文件的一部分(该文件可能被第三方读取)这一事实,则基本身份验证以明文形式发送密码这一事实无关紧要。如果您需要更多安全性,请考虑使用 input 任务查询密码。
<get src="https://insecure-bank.org/statement/user=1214" dest="statement.html" username="1214" password="secret"/>
使用以下宏
<macrodef name="get-and-checksum"> <attribute name="url"/> <attribute name="dest"/> <sequential> <local name="destdir"/> <dirname property="destdir" file="@{dest}"/> <get dest="${destdir}"> <url url="@{url}"/> <url url="@{url}.sha1"/> <firstmatchmapper> <globmapper from="@{url}.sha1" to="@{dest}.sha"/> <globmapper from="@{url}" to="@{dest}"/> </firstmatchmapper> </get> <local name="checksum.matches"/> <local name="checksum.matches.fail"/> <checksum file="@{dest}" algorithm="sha" fileext=".sha" verifyproperty="checksum.matches"/> <condition property="checksum.matches.fail"> <equals arg1="${checksum.matches}" arg2="false"/> </condition> <fail if="checksum.matches.fail">Checksum error</fail> </sequential> </macrodef>
可以下载工件及其 SHA1 校验和(当然,假设校验和文件的命名约定),并在运行时验证校验和。
<get dest="downloads"> <url url="https://ant.apache.org/index.html"/> <url url="https://ant.apache.org/faq.html"/> </get>
使用自定义 HTTP 标头
<get src="https://ant.apache.org/index.html" dest="downloads"> <header name="header1" value="headerValue1"/> <header name="header2" value="headerValue2"/> <header name="header3" value="headerValue3"/> </get>
获取 https://ant.apache.org/ 的索引和常见问题解答页面,并将它们存储在目录 downloads 中(如果需要,将创建该目录)。