【发布时间】:2012-02-20 10:23:30
【问题描述】:
我不是在谈论 sshexec 任务,我想要一个库,它可以让我使用 ant 的所有功能,但不是在本地做事,而是在远程主机上做。
例如使用复制、移动重命名等,但在远程主机中而不是在本地。
我知道 sshexec 可以实现类似的事情,但是一旦我登录到机器我必须使用 shell,而我希望能够使用普通的 ant 任务。
编辑:
我刚刚发现了 sshsession 任务,它可以让您封装 ant 任务以远程运行,或者至少手册上是这么说的:http://ant.apache.org/manual/Tasks/sshsession.html
我已经用这个简单的 build.xml 对其进行了测试:
<project name="project" default="default">
<!-- =================================
target: default
================================= -->
<target name="default" description="description">
<sshsession host="${host}" username="${username}" password="${password}" trust="yes">
<sequential>
<mkdir dir="/tmp/sshtest"/>
</sequential>
</sshsession>
</target>
</project>
运行时得到如下结果:
default:
[sshsession] Connecting to my.server
[mkdir] Created dir: C:\tmp\sshtest
BUILD SUCCESSFUL
它不是在远程服务器上创建目录,而是在我的 PC 上本地创建它。有什么想法吗?
【问题讨论】:
-
我猜
sshsession并没有像我想象的那样执行。所以我的问题仍然悬而未决。 -
如果不假设软件首先安装在远程节点上,您要查找的内容很困难。要获得“蚂蚁的力量”,您必须先上传 ANT jar。
-
sshsession 旨在打开本地计算机和远程计算机之间的隧道,通过该隧道,某些应用程序可以访问某些服务(网络端口),就好像它们在同一台计算机上一样。如果你真的想在远程机器上运行一些东西,你必须先部署一些东西——不管它是什么。
-
您是否满足
sshsession任务的以下先决条件? 此任务依赖于 Ant 发行版中未包含的外部库。有关详细信息,请参阅库依赖项。此任务已使用 jsch-0.1.33 及更高版本进行测试,不适用于 0.1.28 之前的 jsch 版本