【原】Jenkins持續集成環境搭建之創建java項目的job【centos6.5 java maven git 項目】...

一、構建一個maven項目
在jenkins主頁上,左側,選擇“新建”,然后填寫項目名稱,選擇“構建一個maven項目”
二、Git配置
保存之后,進入詳細配置頁面:
這里的源碼管理:選擇git,輸入代碼的git地址,Credentials,填寫代碼分支(默認是*/master主分支)
Credentials,需要點擊Add按鈕,添加具體的git憑證,
①如果當前git項目配置為通過用戶名+密碼認證,則kind選擇username with password;
centos的root用戶生成的公鑰密鑰信息位置信息如下:
②如果用的是公鑰+私鑰的方式,則kind需要選擇:ssh username with private key
在private key里面填寫私鑰,私鑰 位置(在開通git代碼權限時生成):
windows下:C:\Users\Administrator\.ssh\id_rsa
centos 下 /root/.ssh/id_rsa
文件內容:
此時需要把這個id_rsa文件中的所有內容都粘貼到文本框中(包括BEGIN RSA PRIVATE KEY和END RSA PRIVATE KEY這兩行)
三、構建項目觸發器
build periodically:周期性構建,比如每隔十分鐘構建一次,是通過cron表達式控制的,具體可以點擊右側的幫助
poll scm:每隔多長時間pull一次代碼,如果有更新,則編譯,也是通過cron表達式控制的
點擊后面的?標識可以查看說明:
配置maven編譯的pom文件和部署腳本:
root pom文件:由于現在當前文章中tool代碼中的主pom.xml就在根目錄下,所以root pom直接填寫:pom.xml
如果不是在根目錄下,例如:toolsamdin項目中的pom.xml文件,則root pom直接填寫:toolsamdin\pom.xml
goals and options:這里調用maven的命令:clean install(如果項目中配置了多套配置文件profile,這里需要應用id=test的profile這套配置,則此處填寫:clean install -P test)
這里我們簡單的測試一下,寫一個 clean install
點擊立即構建:
第一次由于要拉代碼,所以比較慢,過了一會之后,出現如下變化:
這里藍色的圈表示成功,紅色表示失敗
點擊 # 進去之后
點擊 Console Output 查看本次構建的輸出記錄 ,最底部顯示成功,如果有錯誤的話,這里會顯示失敗信息的。
這時候,去我們的centos服務器的/root/.jenkins/jobs 目錄下查看變化,首先多了一個weds-common文件夾,這個是根據我們的job的名字創建的。
進入目錄中 cd weds-common目錄,查看
這里是項目的構建記錄
進入 cd /root/.jenkins/workspace/ 目錄查看
這里多了我們的項目文件夾,這個是從我們的git服務器上pull下來的代碼
至此,本機的拉取,構建代碼大功告成。
四、構建項目發布到遠程linux centos 服務器
點擊Post Steps,如圖是一個正確的配置,報錯可以不管。
其中SSH Server是我們之前在系統設置 Publish over SSH 中設置好的
post steps需要發布到遠程linux,所以選擇:
然后填寫目標war或jar到遠程linux機器上的哪個目錄下,然后調用遠程機器上的shell腳本,自動重啟tomcat,自動備份等功能
其 中Source files的目錄是基于當前job的目錄(可以從jenkins的安裝目錄下找到):例如當前job名稱為weds-common,則對于root用戶,Source files中的目錄是相對于/root/.jenkins/workspace/weds-common目錄下的,因此,如果我們要發送weds-common下的weds-pay項目的war包,這里需要填寫:weds-pay/target/weds-pay.war
Remove prefix:表示需要移除的目錄,比如這里填寫weds-pay/target,則表示發布時,只把weds-pay.war發布到遠程linux,而不包含weds-pay/target目錄結構
Remote directory:表示需要把編譯好的war包發布到遠程linux的哪個目錄下
Exec command:需要執行的shell命令,shell命令在遠程linux服務器上,比如。一般是需要執行:停止tomcat,復制war到tomcat,備份,啟動tomcat等。
注:本人在配置的是soure files 路徑填寫有問題,導致構建的時候, Console Output一直報SSH: Transferred 0 file(s),關于相對路徑的問題,如果搞不清楚是該相對于誰,請看下圖:
四種第一個截圖里的 test.sh的內容:該shell命令的作用是備份上傳文件,刪除tomcat中原來的項目文件(由于tomcat自動解壓縮,所以這里刪除原來的文件,等一小會后會自動上傳文件并且解壓縮)

#!/bin/bash #傳參測試腳本?export LANG="en_US.UTF-8"?
PROJECT=$1 BAK_DIR=/usr/local/autodeploy/bak/$PROJECT
TEMP_DIR=/usr/local/autodeploy/temp/$PROJECT
TOMCAT_HOME=/usr/local/tomcat
if [ -f $TEMP_DIR/$PROJECT.war ]; then
#sleep 3
if [ -f $TOMCAT_HOME/webapps/$PROJECT.war ];
then echo "===================deleteing old war==================="
rm -rf $TOMCAT_HOME/webapps/$PROJECT.war
rm -rf $TOMCAT_HOME/webapps/$PROJECT
else
echo "===================old war not exits==================="
fi
echo "===================copying new war==================="
cp $TEMP_DIR/$PROJECT.war $TOMCAT_HOME/webapps/$PROJECT.war
echo "===================baking war==================="
mkdir -p $BAK_DIR
cp $TOMCAT_HOME/webapps/$PROJECT.war $BAK_DIR/"$PROJECT"_`date +%Y%m%d%H%M%S`.war
echo "===================deleteing temp file==================="
rm -rf $TEMP_DIR/$PROJECT.war
echo "===================finished=========================="

else
echo "===================temp file not exits===================" fi

?

轉載于:https://www.cnblogs.com/caoheyang911016/p/6637930.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/396341.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/396341.shtml
英文地址,請注明出處:http://en.pswp.cn/news/396341.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

linux修改java內存大小_Linux 和 windows修改java虛擬機內存大小

1、Java內存區域劃分: 運行時的數據區:方法區和堆(各個線程共享的內存區域),程序計數器、Java虛擬機棧和本地方法棧(線程私有的) 程序計數器:當前線程所執行字節碼的行號指示器,字節碼解釋器就是通過改變計算器的值來選取下一條需…

html制作彩虹_制作彩虹

html制作彩虹by Gil Fewster吉爾弗斯特(Gil Fewster) 制作彩虹 (Making rainbows) This is a story about curiosity. It’s also about what happens when you stick a needle into your eye. If you happen to be eating a handful of grapes right this moment, maybe come…

python3 set_python3.x 基礎三:set集合

| clear(...) 清空一個集合| Remove all elements from this set.>>>set1.clear()>>>set1set()| copy(...) 影子復制,指向同一個內存地址| Return a shallow copy of a set. |>>> list1[3, 2, 1, 1, 2, 3, 4, 5]>>>…

Linux內核分析作業第八周

進程的切換和系統的一般執行過程 一、進程調度的時機 中斷處理過程(包括時鐘中斷、I/O中斷、系統調用和異常)中,直接調用schedule(),或者返回用戶態時根據need_resched標記調用schedule(); 內核線程可以直接調用sched…

iOS--數據存儲NSUserDefaults

2019獨角獸企業重金招聘Python工程師標準>>> 今天去面試,被問道NSUserDefaults的存取并手寫出來,一時想不起來,回來之后看看之前的筆記,稍作一些整理 NSUserDefaults是一個單例,在整個程序中只有一個實例對…

巨人肩膀_如何站在巨人的肩膀上

巨人肩膀“If I have seen further than others, it is by standing on the shoulders of giants.” — Isaac Newton“如果我能比其他人看到更多,那就是站在巨人的肩膀上。” —艾薩克牛頓 In 1676, Isaac Newton spoke of the great thinkers who came before him…

mysql 觸發器定義變量_MySQL 函數存儲過程觸發器定義簡單示例

1.變量提示NEW 是新值-- OLD 是舊值INSERT 只有NEW ----UPDATE有NEW和OLD ---DELETE只有OLD2.準備測試表(userinfo、userinfolog)use test;create table userinfo(userid int,username varchar(10),userbirthday date);create table userinfolog(logtime datetime,loginfo varc…

[EOJ439] 強制在線

Description 見EOJ439 Solution 先考慮不強制在線怎么做。 按詢問區間右端點排序&#xff0c;從左往右掃&#xff0c;維護所有后綴的答案。 如果掃到 \(a[i]\)&#xff0c;那么讓統計個數的 \(cnt[a[i]]\). 如果\(cnt[a[i]]<a[i]\)&#xff0c;那么在當前的右端點固定的情況…

大數據 就業 缺口_中國AI&大數據就業趨勢報告:平均月薪超2萬,缺口650萬人...

2019世界人工智能大會開幕式上&#xff0c;特斯拉公司聯合創始人兼首席執行官Elon Musk 和中國企業家俱樂部主席、聯合國數字合作高級別小組聯合主席馬云進行了一場“雙馬”對話。談到人工智能話題時&#xff0c;馬斯克認為&#xff0c;“未來的科技發展變化將超越我們的能力”…

Android pm 命令詳解

一、pm命令介紹與包名信息查詢 1.pm命令介紹 pm工具為包管理&#xff08;package manager&#xff09;的簡稱 可以使用pm工具來執行應用的安裝和查詢應用寶的信息、系統權限、控制應用 pm工具是Android開發與測試過程中必不可少的工具&#xff0c;shell命令格式如下&#xff1a…

開源 非開源_開源為善

開源 非開源by Michael D. Johnson邁克爾約翰遜(Michael D.Johnson) 開源為善 (Open Source for Good) We’ve spent two years coding for a cause, one nonprofit at a time. And now Free Code Camp’s pushing ahead to help organizations at scale.我們花了兩年的時間為…

mysql5.6熱升級_Mysql5.6主從熱備配置

數據庫是應用系統的核心&#xff0c;為了保證數據庫的安全采用主從熱備是很常見的方法&#xff0c;也就是主數據庫DDL、DML都將被同步到從數據庫。一、 實驗環境操作系統&#xff1a;windowsserver 2008 R2數據庫&#xff1a;mysql-advanced-5.6.21-winx64二、 準備工作1、…

InfluxDB(官方使用說明)

安裝InfluxDB OSS 此頁面提供有關安裝&#xff0c;啟動和配置InfluxDB的說明。 InfluxDB OSS安裝要求 root為了成功完成&#xff0c;需要安裝InfluxDB軟件包或具有管理員權限。 InfluxDB OSS網絡端口 InfluxDB默認使用以下網絡端口&#xff1a; TCP端口8086用于通過InfluxDB的H…

incc與oracle連接_Oracle 連接和會話的區別

連接并不是會話的同義詞&#xff0c;發現這一點時很多人都很詫異。在大多數人眼里&#xff0c;它們都是一樣的&#xff0c;但事實上并不一定如此。在一條連接上可以建立0個、一個或多個會話。各個會話是單獨而且獨立的&#xff0c;即使它們共享同一條數據庫物理連接也是如此。一…

CodeForces 176B Word Cut(DP)

題意&#xff1a;給你a串和b串&#xff0c;你能切k次&#xff0c;每次切完將尾部分放在頭的前面&#xff0c;問有多少種方案切k次從a串變為b串 思路&#xff1a;令dp[i][0]為砍了i次變成b串的方案數&#xff0c;dp[i][1]為砍了i次變成非b串的方案數&#xff0c;然后預處理一下前…

如何將React App轉換為React Native

I have been working on a lot of mobile projects lately?—?including Cordova, PhoneGap, React Native, some Ionic and Swift?—?but I have to say, React Native is by far the best experience in mobile development I have had so far. It has great, web-like d…

HTTP狀態碼:400\500 錯誤代碼

轉自&#xff1a;http://blog.sina.com.cn/s/blog_59b052fa0100it74.html一些常見的狀態碼為&#xff1a;200 - 服務器成功返回網頁404 - 請求的網頁不存在503 - 服務不可用詳細分解&#xff1a;1xx&#xff08;臨時響應&#xff09;表示臨時響應并需要請求者繼續執行操作的狀態…

dhcp服務

安裝與配置 配置文件 修改配置文件 復制這個文件到另一端 打開另一端的配置文件 原端輸入這些命令可以去掉英文 然后vim進入另一端配置文件 全局配置不在{}內的 分發范圍是指哪個ip到哪個ip的范圍 指定固定電腦獲取固定位置 原端修改配置文件 下面進行啟動dhcp 克隆一臺虛擬機&…

python數據結構與算法40題_Python數據結構與算法40:遞歸編程練習題3:ASCII謝爾賓斯基地毯...

注&#xff1a;本文如涉及到代碼&#xff0c;均經過Python 3.7實際運行檢驗&#xff0c;保證其嚴謹性。本文閱讀時間約為7分鐘。遞歸編程練習題3&#xff1a;ASCII謝爾賓斯基地毯謝爾賓斯基地毯謝爾賓斯基地毯是形如上圖的正方形分形圖案&#xff0c;每個地毯可分為等大小的9份…

使用Python發送電子郵件

by Arjun Krishna Babu通過Arjun Krishna Babu 如何使用Python發送電子郵件 (How to send emails using Python) As a learning exercise, I recently dug into Python 3 to see how I could fire off a bunch of emails. There may be more straightforward methods of doing…