取决于您实际想要做什么以及安全要求是什么。有几种选择。最简单的一种是对远程计算机\\hostname\sharename\directory\actual.file 使用带有UNC 路径的复制命令。重要的是,远程计算机已定义共享并允许运行 hudson 的用户进行写访问(文件和共享级别)。这也意味着您不能在 local_system 帐户下运行 hudson。 (如果您将 Hudson 作为服务运行,则为默认选项)
实际上我更喜欢robocopy 而不是copy。我认为微软免费提供robocopy。研究 robocopy 的文档(帮助),它是一个为应该知道自己在做什么的管理员提供的程序。 Robocopy 不仅功能强大,如果使用错误的开关,它还可以“无意”删除文件。
其他选项包括 SCP 和 FTP、Master\Slave 配置,其中从站使用 http/https 协议从 Hudson 下载工件。
编辑:
来自vishu的评论
感谢您的及时回复。作为
你的回答说明你有
在哈德逊有很好的知识,我会
想详细说明我的要求。
我的要求是,我喜欢部署
远程Tomcat服务器中的战争
在另一台windows机器上通过
哈德逊(战争将在此产生
机器),它位于另一个
窗户机。仅供参考,两个窗口都是
在同一个网络或内网。一个
Linux 部署的更多内容
使用 plink。有没有其他选择
用于 Windows 部署?
我通常部署到 Websphere Application Server。所以我需要读一点how to deploy to tomcat。看起来您只需将 wat 文件放到正确的目录中即可完成或更改 tomcat 当前使用的配置文件,它会自动拾取它(前提是一切配置正确)。
由于部署方案和您的设置非常简单,我会考虑两种选择。我的首选是在目标 Windows 机器上安装 ssh 服务并重用您已有的 plink 脚本(用于此项目或其他项目)。这里的想法是坚持一种技术。另一种选择是使用 Windows 共享。在这种情况下,请确保 Hudson 使用“真实”帐户,以便 Hudson 不需要明确映射共享(可以编写脚本,但密码可能未加密存储)。在目标系统上创建一个对 Hudson 具有写入权限的共享。比其余的无非就是一个副本。对于复制,您应该看看 robocopy,因为对于此类作业,它比复制命令要优越得多。我在这里的假设是构建作业执行部署。
如果您有两个工作,第一个创建工件,另一个部署工件。我目前更喜欢使用 wget 从 job1 中检索工件。这意味着 job1 归档其工件。第二个作业从第一个作业中获取工件(使用 wget 和 job1 的运行 URL)。在这种情况下,您可以在目标机器上运行 Hudson 从站,并且可以在本地部署。您可以在 Windows 和 Linux 上使用类似的脚本。您可以使用 cygwin 为 Windows 获取 wget(至少我是这么认为的)。使用 cygwin,您甚至可以在 Windows 上使用您的 linux 脚本。优点是,您不需要共享,也不需要单独的工件存储库。如果您将 slave 作为服务运行,您甚至不需要在目标机器上安装 ssh 服务器。
如果您手动触发部署,您可以使用batch task plugin。这实际上是一项工作,您无需担心在工作之间移动工件。缺点是,您只能从最近的作业运行部署,因为它取决于作业的工作空间。无法部署旧版本(如果您的项目现在已损坏或由于应用程序中的重大错误而需要降级)。
如果您已经有一个工件存储库,请使用主从设置并从目标计算机的存储库中检查工件。
我可以想出更多的选择,这将变得越来越深奥。最后,您必须决定您最喜欢什么,最容易实施和维护什么以及满足您的其他(次要)要求(例如某些安全限制)。