一、Project不同圖例的含義
-
什么是圖例,就是構建狀態和編譯晴雨表
圖例
??了解這個對每個使用jenkins是非常有必要的,左邊第一個藍色球的表示上次構建的狀態,當前藍色表示成功。第二個太陽那個圖標表示上次編譯的晴雨表,類似天氣預報的感覺。鼠標懸停小太陽,顯示:構建穩定,當前沒有構建失敗。想要了解更多狀態的含義,點擊圖例這個鏈接。
圖例說明
??由太陽變成雷陣雨圖標。如果看到你項目變成陰云或者下雨,說明你的項目穩定性不好,就問題,就需要去查找問題,解決問題。
二、Jenkins自動構建部署項目到遠程服務器
- Publish Over SSH用于連接遠程服務器
- Deploy to container插件用于把打包的應用發布到遠程服務器
-
構建項目,部署項目到遠程服務器
系統配置
名稱 | 說明 |
---|---|
Passphrase | 服務器的密碼 |
Path to key | 連接遠程服務器密鑰文件的路徑 |
Key | 密鑰文件的內容 |
Name | 自定義服務器名 |
HostName | 服務器IP外網地址 |
UserName | 服務器用戶名 |
Remote Directory | 傳輸文件的目錄,例: \nevo 該目錄必須存在。 |
遠程連接:
[root@localhost ~]# ssh root@192.168.77.132
root@192.168.77.132's password:
三、構建后操作
在Job設置中“添加構建步驟”里選擇“Send files or execute commands over SSH”,即能夠Job中使用Publish over SSH插件。
參數說明
Name
“系統管理>系統設置”設置的SSH Sverver的名字列表。
Source files
需要上傳的文件(注意:相對于工作區的路徑。看后面的配置可以填寫多個,默認用,分隔)注意:如果是多成子目錄的需要配置成 target//
拷貝到運程機上的文件。相對workspace的路徑,也支持表達式,如上圖中的“/.jar”。
# 目錄
/var/lib/jenkins/workspace/
# 配置為
**/**/target/*.jar
Remove prefix
移除目錄(只能指定Transfer Set Source files中的目錄,這里移除了target目錄表示只將xxx.jar傳到目標服務器,否則會在目標服務器創建target目錄)。
# 配置為
nevo-config/target/
Remote directory
文件得到到遠程機上的文件夾,此文件夾是相對于“SSH Server”中的“Remote directory”的。假設不存在將會自己主動創建。可以為空,如果不為空,將會自動在遠程目錄下創建目錄,例:
遠程目錄配置為:\root Remote directory配置為: nevo 則會在目標服務器,生成目錄:
root/nevo
Exec command
:把你要執行的命令寫在里面(這里的命令是在目標服務器上執行的)
參考二的腳本配置。
附:
啟動tomcat腳本:
# 運行腳本
bash 腳本文件
內容:
#! /bin/bash
tomcat_home=/usr/local/tomcat-8
SHUTDOWN=$tomcat_home/bin/shutdown.sh
STARTTOMCAT=$tomcat_home/bin/startup.sh
echo "關閉$tomcat_home"
$SHUTDOWN
#殺死tomcat進程
ps -ef|grep $path|grep java|awk '{print $2}'|xargs kill -9
#刪除日志文件,如果你不先刪除可以不要下面一行
rm $tomcat_home/logs/* -rf
#刪除tomcat的臨時目錄
rm $tomcat_home/work/* -rf
sleep 5
echo "啟動$tomcat_home"
$STARTTOMCAT
#看啟動日志
#tail -f $tomcat_home/logs/catalina.ou
四、常見問題:
- must be present in all file paths
原因:
路徑不可以帶通配符。
例:
不可以為:
**/**/target/
必須為:
nevo-config/target/
springboot項目用maven打包,為什么在生成jar包的同時還生產.original文件?
原因:
.jar.original是上一次打包的備份文件
您還應該在target目錄中看到一個更小的文件xxx-0.0.1-SNAPSHOT.jar.original。這是Maven在Spring Boot重新打包之前創建的原始jar文件。
可以用jar tvf target/xxx-0.0.1-SNAPSHOT.jar.original查看文件內容。
可以看出original文件只包含少量用戶的類,不包含依賴。如果包含依賴的.jar叫 fat jar, 那這個就是瘦jar了。
spring-boot:repackage,默認goal。在mvn package之后,再次打包可執行的jar/war,同時保留mvn package生成的jar/war為.original需要加入spring-boot-maven-plugin這個插件
root pom 指向的是最頂級的pom.xml
clean install -pl 一極模塊/二極模塊 -am -amd -Pdev -Dmaven.test.skip=true
這樣就單獨構建二極這個jar,相關依賴也會構建好,不用將依賴提前放入maven倉庫。多級模塊構建
clean package -pl nevo-service/user-service -am
- spring boot通過命令行配置屬性
java -jar xxx.jar --server.port=8888
通過使用–-server.port屬性來設置xxx.jar應用的端口為8888。
在命令行運行時,連續的兩個減號–就是對application.properties中的屬性值進行賦值的標識。所以,java -jar xxx.jar --server.port=8888命令,等價于我們在application.properties中添加屬性server.port=8888
java -jar xxx.jar --spring.profiles.active=test
指定配置文件。