前陣子幫同事處理一個不知道怎樣自動化編譯的 Java 專案,因為該專案沒有建置工具(Build Tools)輔助,完全依賴 Eclipse 內建的建置工具,所以工程師就不知道怎樣進行 CI 自動建置了。其實在網路上可以找到許多 Shell 環境下的解決方案,但很少有 Windows 環境下的解決方案,為了這個問題,我寫了一段自動化的腳本來解決這個問題,這個腳本幾乎可以適用任何簡易類型的 Java 專案。
... 繼續閱讀 ...
我們在專案上因為面對不同的客戶,有時候會遇到各種形形色色的應用程式伺服器要部署,雖然 Spring Boot 已經有內建 Embedded Tomcat 伺服器,但這套主要用在開發時期或微服務部署之用。如果最終你的應用程式要部署到客戶的 Tomcat / JBoss EAP / IBM WebSphere 等正式環境,還是要做出一些調整才行。今天這篇文章就來深入探討部署到 Apache Tomcat® 的設定過程與完整知識。
... 繼續閱讀 ...
在任何一套開發框架中,多環境管理通常是重要的核心功能之一,當然在 Spring 框架中也不例外,這裡我們稱為 Spring Profiles 設定檔。這個功能說起來簡單,但實作起來卻很容易會不小心亂掉,這篇文章我打算來好好的梳理一番,把觀念搞懂,管理才不會亂掉。
... 繼續閱讀 ...
我在學習一個全新框架時,很喜歡去看那些初學者不太愛看或看不太懂的內容。例如我在學 Angular 的時候,明明 ng new
就可以建立新專案,就可以開始寫程式,但我就會深入研究啟動的完整過程。而我在學 Spring Boot 的時候也一樣,雖然 Spring Initializr 真的很好用,相依套件選一選就可以開始開發應用程式,但我就會想瞭解這些神奇設計的背後做了什麼事,藉此瞭解一個框架的核心原理。這個過程看似沒效率,但事實上此舉可以學習到非常廣泛的知識,而且可以很好的連結不同技術細節。今天這篇文章我們就回歸基礎,看看 Spring Boot 應用程式的啟動生命週期。
... 繼續閱讀 ...
我在寫 .NET 的時候,經常會透過 Visual Studio 2022 的方案(Solution)來管裡多個專案(Project),透過適當的切割可以讓每個專案的職責更加明確,提升可維護性。若是寫 Java 的話,一個專案比較常被稱呼為一個模組(Module),所以經常可以看到 Multi-Module Project 這樣的說法。今天這篇文章我打算分享如何利用 Apache Maven 來建立一個多模組專案,並示範如何互相引用彼此的類別。
... 繼續閱讀 ...
現在很多 Java 的 IDE 工具都有內建 Maven Archetype Plugin 作為建立新專案時的專案範本,你只要安裝 Apache Maven 之後,也可以很輕易的透過 CLI 介面來使用。今天這篇文章我想來介紹這套工具,並且分享一個可以大幅提昇執行速度的小技巧。
... 繼續閱讀 ...
我個人在學習一門技術時,通常不太喜歡過渡依賴 IDE 幫我完成工作,因為方便的背後會錯過許多技術細節,所以我常常會不經意的刻意繞一下遠路。就像我今天在練習用 Maven 開發 Multi-Module Project 的時候,就發現我第一個命令就卡關了,這也太不順了吧。今天這篇文章,我就來說說為什麼建議大家還是少用 PowerShell 來當成你的主要工作環境。
... 繼續閱讀 ...
我們最近有個新的 Java 專案,客戶提供原始碼之後,卻發現他們自己架設的 Maven Repository 並沒有開啟防火牆讓我們連線,以致於專案無法下載相依套件而無法建置。但除了開防火牆連線外,其實還有很多方法可以讓你獲取 Maven 所需的相依套件。今天這篇文章,我就來分享關於 Maven 如何管裡相依套件,以及如何正確的將私有的第三方 JAR 檔加到專案內,降低團隊取得這些 JAR 檔的門檻。
... 繼續閱讀 ...
許多寫 Java 的朋友都採用 Apache Maven 做為專案的建置工具,但是 Apache Maven 有相當多的內涵,我發現並沒有很多人可以很好的解釋這套工具,甚至有一些錯誤的認知,我自己也是在深入瞭解後才發現原來 Apache Maven 可以做這麼多事,甚至你可以拿 Apache Maven 來建置任意程式語言開發的專案。這篇文章我就來好好介紹一下這套優異的建置與套件管理工具。
... 繼續閱讀 ...