環境 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內存(防止項目過大無法上傳)——>加電腦內存(終極解決方案哈哈)