摘要: 在Jenkins上面创建Job执行完毕以后,想把产物(war或者log或者png之类的)文件上传到远程FTP服务器备份或者储存,要怎么办呢?
1. copy命令:
copy vickytesting.png ip\pictures
这个不行,只能在本地电脑上不同地方复制。即使你写的target目录里面是远程IP地址,也会给你生成一个IP对应名称的文件夹,气死人:
2. xcopy命令:
net use //ip/ipc$ " " /user:" " 建立IPC空链接
net use //ip/ipc$ "密码" /user:"用户名" 建立IPC非空链接
net use h: //ip/c$ "密码" /user:"用户名" 直接登陆后映射对方C:到本地为H:
net use h: //ip/c$ 登陆后映射对方C:到本地为H:
net use //ip/ipc$ /del 删除IPC链接
这也是没用的。。。
3. Publish Over FTP Plugin插件:
完美解决,不过需要先在Jenkins上面装这个插件:
在可用面板搜索搜索并选中"Publish Over FTP"插件,然后点击“安装并不重启”:
等待安装:
安装成功后点击回到首页:
当然了,此时你可以在插件管理-》已经安装列表看到这个FTP插件:
4. 使用FTP插件:
进入一个Job的配置界面,并且在构建后操作 那一项选择增加构建步骤-》通过FTP传送文件:
这里FTP Server的名字是个下拉框:
点击问号之后有提示信息,让我们先去Jenkins上面配置FTP信息,然后在这里直接选择就可以了:
(因为我的这个Job部署在Jenkins server的其中一台node,而且我也有Jenkins Server的管理权限,所以后续配置步骤都可以自己完成,如果你们没有管理员权限,就只能给管理员提需求,让别人做后面的配置设置了。)
5. Jenkins Server上配置FTP:
Jenkins -> Manage Jenkins -> Configure System :
找到“Publish over FTP”, 然后配置基本信息:
配置Name,Hostname(IP),Username和Password之后点击测试:
我这里即使输入用户名和密码,也还是会报错。
最后发现是因为跨域问题(防火墙问题):就是这个Jenkins Job运行机器跟FTP服务器不在同一个域。。。
如果你们的可以连接成功,那就直接使用就可以了。
最后会在控制台输出类似这样的信息说明上传文件成功: