在 Jenkins 建立自動觸發任務能有效簡化 Java API 版本管理流程。首先需設定 Git 倉函式庫連結與 SSH 憑證,確保 Jenkins 能順利取用程式碼。接著設定建置觸發器,例如定期輪詢 SCM,一旦程式碼更新就能自動觸發建置流程。建置步驟中,整合 Maven 指令執行佈署任務,將 API 發布至 Nexus 等 Artifact 儲存函式庫。最後設定電子郵件通知,以便在建置失敗時即時收到通知,快速反應處理問題,確保 API 版本發布流程的穩定性。
透過上述設定,開發者只需專注於程式碼開發,版本發布流程即可自動化執行,有效提升開發效率。同時,建置失敗的即時通知機制,也能幫助團隊快速發現並解決問題,確保 API 版本的品質和可靠性。更進一步,可以結合單元測試與整合測試,在每次建置過程中自動執行測試,及早發現程式碼缺陷,提升軟體品質。
自動觸發Jenkins任務以管理Java API版本
建立自動觸發的Free-Style Jenkins任務
為了自動化Java API版本的管理,我們將建立一個Free-Style Jenkins任務,該任務將自動觸發以發布新的版本到Nexus倉函式庫。
步驟1:建立Free-Style Jenkins任務
- 登入Jenkins Dashboard,點選「New Item」連結。
- 輸入任務名稱,選擇「Free-style project」選項,然後點選「OK」按鈕。
- 我將我的任務命名為「ReleaseCalculatorAPIAutoTrigger」。
步驟2:組態Git原始碼管理
- 選擇「Git」單選按鈕,在「Source Code Management」部分。
- 輸入Git程式碼倉函式庫的SSH URL,在「Repository URL」欄位。
- 建立SSH憑證項,點選「Add」按鈕,在「Credentials」欄位。
- 選擇「Jenkins」選項,這將開啟「Jenkins Credentials Provider: Jenkins」頁面。
- 保持「Global Credentials (Unrestricted)」選項被選擇,在「Domain」欄位。
- 選擇「SSH Username with Private Key」選項,在「Kind」欄位下拉選單。
- 輸入值,在「ID」欄位。我輸入了「MyGitSSHCredentials」。
- 選擇「Enter Directly」單選按鈕,在「Private Key」部分。
- 點選「Add」按鈕,在「Private Key」部分。
- 複製私鑰從私鑰檔案,貼上私鑰,在欄位中。
- 輸入私鑰的密碼,在「Passphrase」欄位。
步驟3:組態Build觸發器
- 滾動頁面到「Build Triggers」部分。
- 選擇「Poll SCM」核取方塊。
- 選擇輪詢時間表「After every 5 minutes, every hour, every Day Of Month, every Month, every Day Of Week」。
- 這個設定將使Jenkins每5分鐘檢查倉函式庫的主分支是否有變化。如果Jenkins檢測到變化,它將觸發一個構建。
步驟4:組態Build步驟
- 滾動頁面到新增構建步驟。
- 點選「Add Build Step」下拉選單,選擇「Invoke Top-Level Maven Targets」選項。
- 選擇「MyMaven」選項,在「Maven Version」下拉選單。
- 輸入「deploy」在「Goals」欄位。
步驟5:組態Email通知
- 點選「Add Post-Build Action」按鈕。
- 選擇「Email Notification」選項。
- 輸入您的電子郵件ID,您想要接收電子郵件通知。
- 保持「Send Email for Every Unstable Build」核取方塊被選擇,以接收電子郵件通知,如果構建失敗。
設定Jenkins以傳送電子郵件通知
- 選擇「Manage Jenkins」選單,在Jenkins Dashboard。
- 點選「Configure System」選項。
- 滾動頁面到「Jenkins Location」部分。
現在,您已經建立了一個具有電子郵件通知的Jenkins任務。但是在您執行該任務並檢視通知之前,您需要在Jenkins中調整一些設定。
Jenkins 自動觸發任務的設定與執行
在 Jenkins 中,設定自動觸發任務(Job)以管理 Java API 版本的發布是一個重要的步驟。以下將逐步介紹如何設定這個過程。
步驟 1:設定系統管理員電子郵件地址
首先,需要在 Jenkins 中設定系統管理員的電子郵件地址。這個地址將用於接收 Jenkins 的電子郵件通知。填入有效的電子郵件地址,例如 pranoday.dingare@gmail.com。
步驟 2:設定 SMTP 伺服器
接下來,需要設定 SMTP 伺服器以便 Jenkins 可以傳送電子郵件。若您的組織有自己的 SMTP 伺服器,則可以填入其 IP 地址。否則,可以使用 Gmail 的 SMTP 伺服器。
步驟 3:進階設定
點選「進階」按鈕以開啟更多設定選項。這裡需要選擇「使用 SMTP 身分驗證」並填入有效的 Gmail 帳戶使用者名稱和密碼。這樣,Gmail 的 SMTP 伺服器就可以驗證您的身份。
步驟 4:測試組態
點選「測試組態」按鈕以測試您剛剛設定的 SMTP 組態。如果出現錯誤,可能需要允許不安全的應用程式傳送電子郵件。在 Gmail 中,這可以透過前往「帳戶安全性」頁面並啟用「允許不安全的應用程式」選項來完成。
步驟 5:觸發新 Jenkins 任務
現在,您已經建立了一個 Jenkins 任務,它將每五分鐘輪詢一次 GitLab倉函式庫,並在偵測到變更時觸發一次建置。下一步是合併 MultiplicationFunction 分支到 master 分支。
步驟 6:合併分支
前往 GitLab倉函式庫頁面,點選「合併請求」選單,然後點選 MultiplicationFunction 分支的合併連結。點選「合併」按鈕以合併變更到 master 分支。
步驟 7:觀察 Jenkins 建置過程
回到 Jenkins儀錶板,等待 Jenkins 在下一次排程輪詢時間輪詢倉函式庫。建置將被加入建置佇列,等待執行。觀察建置的主控臺輸出,以確認 CalculatorAPI 是否成功佈署到 Nexus 倉函式庫。
步驟 8:確認發布
最後,前往 Nexus 倉函式庫確認 CalculatorAPI 的新版本是否已經成功發布。
圖表翻譯:
  flowchart TD
    A[設定系統管理員電子郵件地址] --> B[設定SMTP伺服器]
    B --> C[進階設定]
    C --> D[測試組態]
    D --> E[觸發新Jenkins任務]
    E --> F[合併分支]
    F --> G[觀察Jenkins建置過程]
    G --> H[確認發布]
這個過程展示瞭如何在 Jenkins 中設定自動觸發任務以管理 Java API 版本的發布,包括設定 SMTP 伺服器、測試組態、觸發新任務、合併分支、觀察建置過程和確認發布。
自動觸發Java API版本管理
在Jenkins中,當設定了原始碼管理(SCM)時,工作空間目錄會在$(Jenkins.home)位置建立,工作空間目錄內會建立一個與工作名稱相同的目錄,然後組態的分支會在此目錄中被簽出。在我的機器上,儲存函式庫的主分支被簽出在以下位置: C:\Users\magicuser.jenkins\workspace\Release
CalculatorAPIAutoTrigger
建立自動觸發的Free-Style工作以管理Java API版本
當構建觸發時,工作空間目錄會被建立,然後組態的分支會被簽出在此目錄中。這個目錄被視為工作目錄。在這個例子中,Maven佈署構建步驟從這個目錄執行,所有Maven構建階段都會被執行,所有JAR檔案都會被佈署到Nexus儲存函式庫中。
觸發構建失敗以檢視電子郵件通知
您已經組態了工作以在構建失敗時傳送電子郵件通知。現在,我故意修改了一個單元測試案例的預期結果,以使其失敗。我正在測試加法功能,這個功能會失敗。請參考圖13-14。
圖13-14. TestAdditionFunctionality.java檔案中的TestAdditionWithPositiveNumbers函式程式碼
我已經提交了這個變更到一個分支中,並將其推播到遠端儲存函式庫中。然後,我合併了這個分支到主分支,以觸發構建。構建#6因為測試案例失敗而失敗了。您應該已經收到了一封關於構建#6失敗的電子郵件通知。點選電子郵件以檢視失敗構建的控制檯輸出日誌。
圖表翻譯:
此圖表顯示了建立自動觸發的Free-Style工作的流程。首先,建立一個新的Free-Style工作,然後組態原始碼管理,設定SSH私鑰,組態電子郵件通知,最後觸發構建並檢視電子郵件通知。
內容解密:
以上內容解釋瞭如何使用Jenkins自動化Java API版本管理。首先,建立一個新的Free-Style工作,然後組態原始碼管理,以便Jenkins可以從GitLab儲存函式庫中簽出程式碼。接下來,設定SSH私鑰,以便Jenkins可以使用私鑰克隆儲存函式庫和將程式碼推播到遠端儲存函式庫。然後,組態電子郵件通知,以便在構建失敗時傳送電子郵件通知。最後,觸發構建並檢視電子郵件通知,以確保構建過程是否正常執行。
從持續整合與持續交付的最佳實務來看,自動化 Java API 版本管理是提升軟體交付效率和品質的關鍵環節。本文深入探討瞭如何利用 Jenkins 建立自動觸發任務,實作程式碼變更後自動建置、測試和佈署至 Nexus 倉函式庫的流程。透過結合 Git 版本控制系統、Maven 構建工具以及電子郵件通知機制,此方案有效地減少了人工干預,降低了錯誤風險,並確保了版本發布流程的穩定性和可追溯性。
然而,單純的自動化佈署並不足以保證軟體品質。本文中,透過故意觸發建置失敗案例,突顯了整合自動化測試的重要性。完善的測試覆寫率是持續整合流程中不可或缺的一環,唯有如此才能及早發現程式碼缺陷,避免問題蔓延至後續階段。此外,建置失敗時的電子郵件通知機制,也確保了開發團隊能夠及時取得錯誤資訊,快速進行問題排查和修復。
展望未來,隨著微服務架構和容器化技術的普及,Jenkins Pipeline 將扮演更重要的角色。透過 Pipeline as Code 的方式,可以更精細地定義和管理複雜的交付流程,實作更高度的自動化和彈性。同時,整合程式碼品質分析工具和安全掃描工具,也能進一步提升軟體交付的品質和安全性。對於追求卓越工程實踐的團隊而言,持續探索和應用新的 CI/CD 工具和技術,將是保持競爭力的關鍵。因此,玄貓建議,技術團隊應積極探索 Jenkins Pipeline 和其他進階 CI/CD 實踐,以構建更強健、高效的軟體交付流程。
 
            