Jenkins使用-windows机器上的文件上传到linux
一.背景#
java项目要求,通过jenkins把 maven工程编译打包后的war部署到另一台linux server上的glassfish(Ver3.1)中,在网上搜索的时候看到有人使用Jenkins的插件,可以通过插件直接把war包部署到linux,然后按照网说文章说的安装插件,打包部署,但是总是部署失败,项目需要尽快部署,所以只能改用其它方法来实现
二.解决方法#
在网上搜到了一个软件, pscp,软件下载地址(可能需要FQ) 下载 pscp, 这个软件和 putty是一家的, 所以可以放心使用,pscp可以上传文件和文件夹,可以满足我的要求
具体步骤
1.下载后,是一个exe文件:pscp.exe,把这个软件直接复制到C:\Windows\System32下(我的jenkins安装在一台win7上),这样使用时不能带上pscp软件的完整路径,简单省事
2.上传文件夹使用命令 pscp -r -l root -pw xxyyzz D:\jenkins的home文件平\workspace\构建的项目名(是个文件夹)\xxx\yyy 192.168.20.200:/xxx/zzz,
也可以上传文件 pscp -r -l root -pw xxyyzz D:\jenkins的home文件平\workspace\构建的项目名(是个文件夹)\xxx\yyy\123.war 192.168.20.200:/xxx/zzz
解释:
-r 递归文件夹(上传时连子文件夹一起上传)
-l 指定用户名
-pw 用户密码
之后是需要上传的文件夹或文件名
最后是linux的 IP:目标文件夹
如果没有错误(如用户名或密码不正确, 路径或文件不存在等)整个命令在 cmd下执行就可以上传文件到linux了, 我所使用的方法是把命令(有多个)写在一个bat文件里, 在jenkins里调用bat, 也可以在kenkins的构建项目中设置
三.问题#
第一次执行上面的命令时会提示问你是否要缓存一个什么信息,当时没有截图,,否则在jenkins下构建时执行这个命令会每一条都问一次,而且你还没有输入Y的地方,结果就是构建失败.
Fix问题: 在Jenkins所在的windows的cmd窗口执行一下这个命令,上传任意一个文件到任意目录,,根据提示输入Y,回车,以后就再也没会要求输入确认了
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?