jenkins自動構建部署
環境 centos7 tomcat8.5.37 maven3.3.9 jdk8 git1.8.3.1
安裝jdk,tomcat,maven,git(環境變數,配置檔案什麼的自行百度)
部署jenkins(下載jenkins.war扔進tomcat即可,如果報錯了就將war包解壓一下再扔進去)
配置jenkins,外掛管理,系統設定,全域性工具設定,新增憑證等等
(注意要安裝deploy to a container外掛才能構建後自動部署)
下面就是重點了
構建規則
這裡我選的是定時構建, H 1 * * *表示每天凌晨一點構建一次
部署(重點)
部署這塊我踩了不少坑
需要注意的是:
tomcat預設不不允許遠端訪問的,所以需要先設定允許遠端訪問(jenkins裡報401就是這個原因)
進入tomcat9091-2/webapps/host-manager/META-INF/context.xml allow 修改為 allow="^.*$"
jenkins裡需要的tomcat使用者密碼在conf/tomcat-users.xml裡(jenkins裡報403就是這個原因)
這整段改成
<role rolename="tomcat"/> <role rolename="role1"/> <role rolename="manager-script"/> <role rolename="manager-gui"/> <role rolename="manager-status"/> <user username="tomcat" password="123" roles="tomcat"/> <user username="both" password="123" roles="tomcat,role1"/> <user username="role1" password="123" roles="role1"/> <user username="admin" password="123" roles="manager-gui,manager-script,manager-status"/>
需要注意的是,不管war包名是什麼,只要contextPath裡寫的是“/”,部署在tomcat裡的war包名都是ROOT.war(這點還是很好的,以前為了在瀏覽器裡不帶專案名直接訪問,都是自己先刪掉tomcat原來的ROOT.war然後把生成的ROOT.war在放進去)
另外網上說的專案名為ROOT.war會報錯,我測了並沒有報錯。
還有一點,就是專案過大的問題。有這麼幾點建議
maven裡的jar包最好不要讓jenkins去下載,下載好了後放到maven倉庫裡去(否則容易斷開連線或者記憶體溢位導致構建失敗,為什麼會記憶體溢位?反正我的阿里雲2G記憶體不夠用)
殺掉電腦裡的一些其他程序
重啟大法:重啟tomcat——>重啟系統
加記憶體(怎麼加自行百度):jvm記憶體——>maven記憶體——>tomcat記憶體(防止專案過大無法上傳)——>加電腦記憶體(終極解決方案哈哈)