如何使用ant将目录从windows系统复制到远程windows系统
有一个scp命令和FTP命令,请提供一个使用scp和FTP执行此任务的示例。
scp也需要SSH,这在windows系统中是不常见的。
那么如何使用ant在windows系统上使用SCP
如果你知道任何使用ant或java的更好的windows系统方法,请分享
还有一个SC命令(不知道怎么用)
下载:
<scp file="${username}:${password}@${ip}:${path-to-file}" todir="${dir}" trust="true" />
或上传:
<scp file="${path-to-file}" todir="${username}:${password}@${ip}:${dir}" trust="true" />
Ant scp task提供了localFile、remoteFile等属性来代替"file",localTofile/localTodir、remoteTofile/remoteTodir等属性来代替"dir"。当您需要一些scp任务将文件从服务器获取到本地机器,而其他scp任务则需要将文件从本地机器上传到服务器时,使用这些属性可以帮助您避免混淆。
像这样(用于上传):
<scp localFile="${path-to-file}" remoteTodir="${username}:${password}@${ip}:${dir}" trust="true" />
查看ant手册查看更多信息:http://ant.apache.org/manual/Tasks/scp.html
注意:
1. 避免复制多个文件;复制一个zip文件和一个ant构建文件,然后在目标机器上解压缩。
2. 使用scp,您需要在目标机器上设置ssh服务器;您还需要将jsch.jar放在ANT_HOME/lib中。jsch.jar可以从
http://www.jcraft.com/jsch/index.html
您应该使用FTP在windows机器之间复制文件。还有其他协议,但你应该使用FTP。
使用FTP的示例。
<ftp server="${server.location}"
remotedir="${directory.to.copy}"
userid="${ftp.username}"
password="${ftp.password}"
depends="yes">
<fileset dir="**Files****"/>
</ftp>
您可以在这里进一步查看详细信息。那里有很多选择可以尝试。
首先从C:apache-ant-1.8.2lib文件夹下的http://www.jcraft.com/jsch/下载jsch-0.1.53.jar文件。然后在build.xml
中添加下面一行代码<scp file="${userName}:${password}@${${ip_address}:${directory}/${FileName}" todir="${localDir_Where_to _Copy}" trust="true" />
然后在build.xml
要使用ant scp将目录从本地主机复制到远程主机,必须指定目录的父目录到文件集,并包括目录名,例如
<scp todir="user@hostname:/destination/dir/" keyfile="id_dsa" passphrase="abc" sftp="true" >
<fileset dir="${parentDir}/" >
<include name="**/${dirToCopy}/" />
</fileset>
</scp>
sftp="true"在这个主题上帮助了另一个用户,所以我包含了它。在我的情况下,我相信在parentDir和dirToCopy的末尾添加"/",这表示命令行中的目录,最终让我复制目录,而不仅仅是它的内容。