Jenkins帶有Publish over FTP插件莺褒,安裝后并使用它就能實(shí)現(xiàn)FTP上傳挖炬,可以用于構(gòu)建后的發(fā)包操作。我們?cè)谙到y(tǒng)管理中配置好FTP Servers后料仗,并測(cè)試連接通過湾盗,按理在Job配置中用Publish over FTP按官網(wǎng)的配置說明進(jìn)行配置(Publish Over FTP Plugin),構(gòu)建后就能正常上傳文件立轧「穹啵可是我們可能會(huì)遇到以后問題:
問題一:不支持中文目錄
報(bào)錯(cuò)如下:
關(guān)看報(bào)錯(cuò)提示一般人打死都想不到是中文目錄引起的,如果知道其實(shí)解決起來很容易氛改,做如下配置:
【系統(tǒng)管理】->【系統(tǒng)設(shè)置】->【Publish over FTP】->高級(jí):【Control encoding】->輸入【UTF-8】或者【GB2312】
雖然Jenkins說明中推薦中文配置為GB2312帐萎,但其實(shí)我們一般通用的作法是設(shè)置為UTF-8,兼容各類操作系統(tǒng)和構(gòu)建環(huán)境胜卤。
問題二:不支持FTP被動(dòng)模式(PASV)
報(bào)錯(cuò)如下:
上網(wǎng)查有關(guān)FTP報(bào)502 Command not implemented錯(cuò)誤疆导,可能都會(huì)說到要開啟FTP被動(dòng)(PASV)模式,那解決方法就有兩種了葛躏,一種是在FTP服務(wù)端開啟PASV被動(dòng)模式(一般默認(rèn)兩種模式都開啟了澈段,但不排除沒有開啟的情況悠菜,就導(dǎo)致這個(gè)問題)。我們通過FlashFXP工具去連接FTP服務(wù)器败富,也能看出是否開啟了PASV模式:
可以看出FTP客戶端默認(rèn)都是用PASV模式去連接服務(wù)端悔醋,如果連接失敗后會(huì)自動(dòng)轉(zhuǎn)為PORT主動(dòng)模式,說明我們的Jenkins不會(huì)自動(dòng)去轉(zhuǎn)換連接模式囤耳,所以導(dǎo)致了上傳文件報(bào)502錯(cuò)誤篙顺。?
所以,另一種方式就是改變Jenkins的FTP連接模式充择,通過官網(wǎng)也能找到這一段話:
Use active data mode
By default passive mode will be used to connect to the FTP Server.
In passive mode the client initiates all connections which will allow the client to send files through a firewall that has been configured to refuse all inbound connections (and does not create dynamic rules).
If you want to dissable passive mode, and have the client use PORT commands for the server to connect to the client to retieve the files, then you can check this box.
?從這段話可以看出德玫,我們是需要自己設(shè)置連接模式的(默認(rèn)是PASV模式,至于PORT與PASV兩種模式的區(qū)別椎麦,可以上網(wǎng)百度)宰僧,配置如下:
系統(tǒng)管理】->【系統(tǒng)設(shè)置】->【Publish over FTP】->高級(jí):勾選【Use active data mode】
保存設(shè)置后,再次構(gòu)建項(xiàng)目观挎,就能看到FTP上傳成功了琴儿!