使用 ANT 从 URL 中获取以特定单词开头的所有文件

Get all the files that starts with a specific word from a URL using ANT

我正在使用以下任务从 URL 获取特定文件并将其安装到我的本地目录:

<project name="MobileBanking" basedir="../">
    <target name="get">
        <get src="https://domain/dsprdamf1/mf/node1/logs/server11_mf/trace.log" dest="Local/Logs" usetimestamp="true" username="${USERNAME}" password="${PASSWORD}"/>
    </target>
</project>

但是,问题是我有多个以单词 "trace" 开头的文件,我需要将它们全部放到我的本地目录中。

我试过以下方法:

<get src="https://domain/dsprdamf1/mf/node1/logs/server11_mf/trace*" dest="Local/Logs" usetimestamp="true" username="${USERNAME}" password="${PASSWORD}"/>

<get src="https://domain/dsprdamf1/mf/node1/logs/server11_mf/*" dest="Local/Logs" usetimestamp="true" username="${USERNAME}" password="${PASSWORD}"/>

但 none 有效。

我应该使用什么从 URL 中获取所有以单词 "trace" 开头的文件?

我认为 URLs 不可能做到这一点。 get 任务从 any URL 检索文件。为了支持 URL 输入的基于模式的形式,例如 basePath/trace*.html,任务应该查询 URL basePath 并解析页面的内容 HTML确定此路径中 HTML 页面的列表,这是一件很乏味的事情(如果可能的话,首先请参阅 How to get list of files/directories of an directory url in java?)。尝试获取基础 URL 的内容,解析其结果,看看是否可以在那里获取所有 trace* 文件的列表(这可能是一个解决方案,但它非常丑陋)。

您可以查看 ftp or scp 任务等替代方案,这些任务支持具有 includeexclude 通配符模式的嵌套 fileset 资源。与 get 任务不同,ftp 基于 FTP 协议工作,该协议允许获取远程目录中的文件列表。但是,这需要 FTP 服务器或 SSH 守护程序等服务可用。