Ⅰ jenkins把WAR包打到哪裡去了
jenkins默認會存放在用戶主目錄下的.jenkins文件夾中
如:Linux root用戶:/root/.jenkins
注意:這是linux版本的。windows系統請自行更改。這個值在Jenkins運行時是不能更改的. 請先將Jenkins停止運行。
如果查看當前Jenkins目錄:系統管理→系統設置→主目錄→/root/.jenkins(注意:用戶不同,路徑也不同)
Jenkins儲存所有的數據文件在這個目錄下. 你可以通過以下幾種方式更改:
使用你Web容器的管理工具設置JENKINS_HOME環境參數.
打開tomcat的bin目錄,編輯catalina.sh文件。
在# OS specific support. $var _must_ be set to either true or false.上面添加:export JENKINS_HOME=""
在引號中填入你的路徑。
在啟動Web容器之前設置JENKINS_HOME環境變數.
用root用戶登錄
編輯profile文件:vi /etc/profile
在最後加入:export JENKINS_HOME=xxxx
保存,退出後執行:source /etc/profile
讓配置生效
(不推薦)更改Jenkins.war(或者在展開的Web容器)內的web.xml配置文件.
<!-- if specified, this value is used as the Hudson home directory --> <env-entry> <env-entry-name>HUDSON_HOME</env-entry-name> <env-entry-type>java.lang.String</env-entry-type> <env-entry-value></env-entry-value> </env-entry> <!-- 在<env-entry-value>節點中填入路徑,windows系統建議使用/分隔路徑 -->
好了,現在運行Jenkins看看效果吧。
Ⅱ 用jenkins怎麼對web工程打包
1.系統管理->管理插件->可選插件->搜索「Deploy to container Plugin」,勾選插件直接安裝,等著Jenkins自動安裝完成。此時我們打開我們之前新建的項目選擇「增加構建後的操作」中增加了一項「Deploy war/ear to a container",將我們的war和ear工程部署到容器。
2.我們添加一個deploy war/ear to a container選擇,Jenkins中構建後操作多出一個發布選項
WAR/EAR files:是war包的相對路徑
content path:tomcat的發布路徑,即使用localhost/(content path設置的名字)來訪問項目.
contaners :發布到的容器,主要可發布到tomcat、jboss、GlassFish
deploy on failure:發生錯誤的時候是否發布到tomcat
3.點擊add contaners 添加發布的容器,我們這里要發布到tomcat,所以我這里添加的是tomcat
Ⅲ jenkins配置文件在哪
當然,你也可以為你的目標機器安裝SSH服務。
我先說說解決的思路,然後再附上具體的步驟和shell腳本。
思路:將jenkins安裝在linux系統上--->SVNcheckout部署的項目--->maven插件編譯、打包--->使用jenkins的FTP插件將需要部署的項目或打成的包上傳到指定的機器--->執行shell腳本登錄該機器進行解壓、部署、啟動等操作(也可以直接執行寫好的shell)。
具體步驟:
(1)源碼管理,填寫相應的項目SVN地址以及用戶名密碼
(2)配置mavenbuild,maven插件的配置在系統設置裡面設置。
(3)FTP上傳
這里的Sourcefiles是jenkins的workspace的相對路徑,Removeprefix為取消的前綴(只保留項目名稱部分)。
(4)構建時執行腳本
這是Telnet遠程登錄的腳本
#!/usr/bin/envshUSERNAME=swdev#登錄用戶名PASSWARD=swdev#登錄密碼TAR=icore-business-ecif-biz-0.0.1-SNAPSHOT-unix.tar.gz#TAR是上傳的壓縮包的名字MODEL=provider#MODEL是壓縮包根目錄的名字和啟動的二進製程序名一樣DEPLOY_DIR=ecif#DEPLOY_IP是上傳文件所在的目錄REMOTE_IP=192.168.2.3#登錄IP(sleep1;echo"$USERNAME";\sleep1;echo"$PASSWARD";\sleep1;echo"cd\$HOME/$DEPLOY_DIR";\sleep1;echo"chmod+x./deploy";\sleep1;echo"nohup./deploy$TAR$MODEL2>&1>deploy.log&";\sleep10)|telnet$REMOTE_IPexit0
(5)構建後執行腳本deploy.sh(主要用於解壓、部署、啟動等操作,這個放在上傳文件所在的目錄中)
#!/usr/bin/envsh##$1tar.gzname#$2providersourcefoldername#set-elog_message{echo"[$(date+%Y%m%d-%H:%M:%S)]$1"}BASDIR=$(dirname$0)if[$#-lt2];thenlog_message"Usage:$(basename$0)[tarname][providername]"exit1fi#Stoppreviousversionandbackup,thenremovepreviouspackageCMD="$BASDIR/$2/bin/$2"if[-e"$2"];then$CMDstopbackup="${2}-$(date+%Y%m%d%H%M%S)"log_message"Backuppreviousapplicationto${backup}.tar.gz"tar-cvf$backup.tar$2gzip${backup}.tarrm-rf$2filog_message"Extractpackagebegin"gunzip-c$1|tar-xvf-#Generatelogdirectorymkdir-p$BASDIR/$2/logslog_message"Startingapplication"$CMDstart
這個腳本只是一個示例,需要根據具體業務具體而定。
最後呢,遇到的幾個比較坑的地方拿出來與大家分享下:
FailedtoparsePOMs.
原因:本地伺服器和maven伺服器之間的連接出現了問題,導致jar包無法下載而報錯
解決方法:
vi/etc/hosts
在文件末尾加上你所使用的私服地址如:"192.168.1.1www.nexus.xxx.com"
運行"#/etc/init.d/networkingrestart"重啟網路
Ⅳ Jenkins自動部署筆記(二)全局工具配置
前提條件:
1.已安裝並啟動Jenkins。
2.已安裝下列插件。
(1)Git plugin 可能默認已經安裝
(2)Git client plugin 可能默認已經安裝
(3)Maven Integration plugin
(4)Publish Over SSH 用於遠程部署
(5)Gitlab Hook Plugin 用於gitlab提交觸發自動部署
以上內容在Jenkins自動部署筆記(一)中有詳細介紹
進入系統管理。
進入全局工具配置。
1.JDK
(1)點擊「JDK安裝...」
(2)點擊新增JDK按鈕,填寫別名(隨便起)、JDK安裝路徑即可。JDK在上一節已安裝,所以這里我們直接選擇安裝路徑。
2.Git
填寫名稱(隨便起)、安裝路徑即可。
3.Maven
點擊新增Maven按鈕,勾選自動安裝,在「從Apache安裝」下拉列表中選擇一個版本即可。
4.NodeJS(主要用於vue前端項目的自動打包部署)
點擊新增NodeJS按鈕,填寫名稱(隨便起),勾選自動安裝,在版本下拉框中選擇一個NOdeJS版本。
5.點擊保存按鈕後,剛才選擇自動安裝的工具會在後台自動安裝。到此,全局工具配置基本結束。
Ⅳ Jenkins Gitlab 前端構建發布
流程:通常是從gitlab/github拉取項目,構建,把產出文件發到伺服器。
一、環境
創建任務之前,要先配置兩項:
問題1:jenkins credentials配置SSH
系統管理 -> Manage Credentials -> 全局憑據 (unrestricted) ->添加或者編輯
注意:這里的key是個大坑,最開始我糾結是填私鑰還是公鑰,發現粘貼進去都不對。(粘貼私鑰時我粘貼的是正文,沒有復制首尾兩行,導致一直報錯。)最後把私鑰整個粘貼進去就對了。
原因:
由於Jenkins的安全策略配置了CSRF跨站點保護。
解決方案:
進入Jenkins,系統管理-->全局安全配置,勾選匿名用戶具有可讀許可權和去掉CSRF防止跨站點請求偽造:
在 /configure 下
這個插件是jenkins連接linux系統的時候使用。
以下針對插件的每個屬性進行說明。
Name
SSH Server的Name屬性就是你希望連接的伺服器。
Source files
這里輸入的是你希望傳到伺服器的文件夾和文件。路勁是相對jenkins的workspace的項目名稱的。例如編譯打包後的路徑為dist文件夾下的jenkinszip.tar.gz,則Surce files填入dist/jenkinszip.tar.gz。
Remove prefix
如果Source files為dist/jenkinszip.tar.gz,但是不想把dist目錄創建到伺服器端,這個時候就可以在Remove prefix里填入dist
Remote directory
這里指定文件將被拷貝到伺服器的路徑。
PS:被拷貝文件在伺服器上的完整路徑=登錄伺服器賬號的默認路徑(就是全局設置的Remote Directory)+當前任務配置的Remote directory。
例如我的伺服器路徑是 /home/wwwroot/aaa
我全局配置Remote Directory 是 /home/wwwroot
當前任務配置的Remote Directory 是 /aaa/
Exec command
這里就是連接伺服器之後需要執行的命令。
注意:這里配置的Secret token和 webhook要填寫到gitlab裡面,路徑如下:
參考文章: https://blog.csdn.net/hou_ge/article/details/103507947