2020 年 9 月 16 日

IT Skills 波林

Polin WEI – 資訊工作者的技術手札

Jenkins 利用 Gradle 自動編譯 Spring Boot 並自動起動

1 min read
jenkins-console

Jenkins 自動部署 Spring Boot 並自動起動

 

當程式存放在 程式版本控制 on GitHub or Gitee or Bitbucket or GitLab 有版本更新時,使用 Jenkins 可以減少人為手工的錯誤,並讓它自動部署及自動起動。這篇文章將 Jenkins 建置在 windows 10 作為說明。

 

  • 下載安裝檔

我們可以到以下連結下載適合的 OS 環境版本安裝,我們選擇熟悉的Windows環境。細部安裝步驟可以參考: Jenkins Master Server安裝

  1.  Jenkins https://jenkins.io/download/
  2. Java – OpenJDKhttps://developers.redhat.com/products/openjdk/download
  3. Git Tool – https://git-scm.com/download/win
  4. Gradle Tool gradle-6.5

 

安裝 Jenkins 完後在幾分鐘後重新整理網頁,就過出現以下內容,我們可以依照指示在指定目錄找到初始管理員密碼,取得密碼後在下面輸入,接著按下Continue按鈕。

jenkins-pwd

 

  • 基本的配置設定

管理 Jenkins ->組態設定 : 設定遠端連到系統的網址,以及系統管理員的 email

jenkins-configuration

管理 Jenkins -> Global Tool Configuration : 將 JDKGitGradle 的路徑設好

jenkins-configureTools

Jenkins -> Credentials -> System -> Global credentials (unrestricted)

jenkins-credentials-gitlib

若不知怎麼設定  Personal Access Tokens ,可以參考: 程式版本控制 on GitHub or Gitee or Bitbucket or GitLab

 

  • 設定自動佈署 Spring Boot 並自動起動

先建立一個  新增作業 , 建置 Free-Style 軟體專案

jenkins-newJob

在 原始碼管理 中,填入 GitLab 的 repository 網址,並選擇 基本的配置設定 中的要登入 GitLab 的憑證

jenkins-gitlib

 

在建置的地方,先選擇  Invoke Gradle script ,然後再加入執行 windows 批次指令 gradlew build , 最後將建好的 jar 檔 Copy 到要執行的目錄去.

jenkins-gradlew-build

在要起動前,先將執行中的 port 給 kill , 在 windows 用 netstat -ano | find ":443" 來找執行佔用 port 的 pid, 並用 taskkill 來 kill 。進階使用可以參考 https://winaero.com/blog/kill-process-windows-10/

@echo off
setlocal enabledelayedexpansion
set port=443
for /f "tokens=1-5" %%a in ('netstat -ano ^| find ":%port%"') do (
    if "%%e%" == "" (
        set pid=%%d
    ) else (
         set pid=%%e
    )
    echo !pid!
)
if NOT "!pid!" == "" (
   taskkill /f /pid !pid!
)

或使用 tasklist  查詢執行中的程式,然後將它的 pid kill

@echo off
setlocal enabledelayedexpansion
set prog=javaw
echo "will kill program: %prog% in process"
for /f "tokens=1-5" %%a in ('tasklist ^| find "%prog%"') do (
    if "%%e%" == "" (
        set pid=%%b
    ) else (
         set pid=%%b
    )
    echo !pid!
)
if NOT "!pid!" == "" (
   taskkill /f /pid !pid!
)

 

jenkins-auto-run

最後要自行啟動時, 要記得用 javaw , 其中的 set BUILD_ID=DontKillMe 是為了這個 process 不要被自已給 kill , 但好像不設也可以

@echo off
set BUILD_ID=DontKillMe
d:
cd D:\Progs\services
start javaw -jar D:\Progs\services\myapps.jar
exit

 

最後, 記得在防火牆中加入對 javaw 可以連入的允許, 或是打開 port: 80, 443 , 這樣別台電腦才可以連入

windows-firewall

 

整個執行的狀況可以查看 console Output

jenkins-console

 

要修改Port,可以進到Jenkins目錄下 ( 預設是C:\Program Files (x86)\Jenkins\ ),打開 jenkins.xml 檔案,把8080改為指定的埠號,存檔後再請新啟動即可。

熱鍵 Windows鍵 + R 輸入notepad C:\Program Files (x86)\Jenkins\jenkins.xml

 

其它文章參考:

介紹新的 GitLab 插件

Copyright © All rights reserved. | Newsphere by AF themes.