【问题标题】:How to send a war file on to a Windows machine location through Ant build.xml file如何通过 Ant build.xml 文件将战争文件发送到 Windows 机器位置
【发布时间】:2015-07-31 01:34:05
【问题描述】:

我已经设置了一个环境,我所有的 svn 签出/更新、编译、制作战争、创建所需环境的过程都是使用 Ant build.xml 完成的。我也愿意通过Antbuild.xml部署构建好的war文件。

我成功地使用build.xml 将应用程序部署到Linux 机器上,使用SCP 任务部署到Tomcat webapps 目录,代码如下。

<target> <scp trust="true" file="antproject1.war" 
  todir="${tomcat.username}@${tomcat.server}:${tomcat.webapps.dir}" 
  password="${tomcat.password}"/> </target>

但我不知道将哪些 jar 文件添加到 ANT_HOME 以将战争文件从我的本地计算机发送到远程 Windows 计算机的任务是什么。

【问题讨论】:

  • 你能在windows上安装一个sFtp服务器吗(winscp.net/eng/docs/guide_windows_ftps_server)?
  • 如果 sFtp 是唯一的方法,那么应该复制什么代码。
  • 当前代码应该可以工作
  • @BorisPavlović 不,它不会工作。 SCP 是与 FTP(S) 不同的协议。

标签: java windows ant jsch


【解决方案1】:

Windows 本身不支持 SCP。

您可以安装第 3 方 SCP 服务器。尽管大多数优秀且易于安装的 SCP 服务器都是商业化的。


本机仅支持 FTP(或 FTPS),尤其是 Windows IIS 服务器。
请参阅 my 指南以获取 Installing secure FTP server on Windows using IIS

一旦您运行了 FTP 服务器,请使用 Ant FTP task

<ftp server="example.com" userid="username" password="password">
  <fileset dir="path">
    <include name="antproject1.war"/>
  </fileset>
</ftp>

有关更多示例,请参阅Ant FTP task documentation

尽管不幸的是,Ant FTP 任务不支持 TLS/SSL 加密。因此,与我指南中的建议相反,您必须允许与 IIS 的未加密连接。


如果您想使用安全连接,您必须使用an Ant Exec task 并运行外部 FTPS 客户端。

例如WinSCP:

<exec executable="winscp.com">
  <arg value="/command"/>
  <arg value="open ftps://username:password@example.com/"/>
  <arg value="put c:\localpath\antproject1.war /remote/path/"/>
  <arg value="exit"/>
</exec>

详情请见guide to WinSCP scripting

优势可能是 WinSCP 也支持 SCP(和 SFTP)协议。因此,对于 Linux SCP/SFTP 和 Windows FTP/FTPS,您可能拥有相同的代码(session URL 除外)。

(我是 WinSCP 的作者)

【讨论】:

  • 我可以使用 代码实现我的要求。谢谢你,马丁。
猜你喜欢
  • 2015-02-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-07-13
  • 1970-01-01
  • 1970-01-01
  • 2016-03-24
  • 1970-01-01
相关资源
最近更新 更多