組建專案
目前還在你自己的電腦,不需要特地跑到Server上執行。
使用mvnw指令組建專案
在組建(build)專案前,我們要先確認有沒有安裝JDK,請根據你的電腦環境選擇對應的安裝檔(大部分人選擇Java SE Development Kit 17.0.9 Windows x64 Installer即可,⚠️不要下載成JRE!!!),可至以下網站下載安裝,當然除了Oracle官方,你也可以使用OpenJDK提供的JDK。
確認安裝JDK後,我們需要輸入指令來組建Spring Boot專案,組建成功後會得到JAR檔,在IDEA的左下角可以輸入指令。

根據終端機的不同,輸入指令
如果出現下面的錯誤,請設定JAVA_HOME環境變數


如出現此視窗請按允許

你有很高的機率會遇到下列錯誤,這是因為我們之前有在資料庫新增資料(資料庫不是空的,裡面可能會有之前測試時新增的顧客),與程式的預期的結果不符(你可以查看src/test/java/com/example/crudwithvaadin資料夾,裡面有Spring團隊寫的測試,以下圖的錯誤訊息來說,測試預期只會有Josh這位顧客,但現在資料庫有3個Josh,所以測試失敗)。


解決方法之一為修改application.properties檔案底下的spring.jpa.hibernate.ddl-auto,從update改成create-drop,再執行一次指令。

順利的話,你會看到下列畫面

接著請再修改application.properties檔案底下的spring.jpa.hibernate.ddl-auto,從create-drop改成update,再執行一次指令。
一樣順利的話你會看到上圖的成功畫面。
生產環境下,請將spring.jpa.hibernate.ddl-auto設為update。
最後,在target資料夾下,你可以找到crud-with-vaadin-initial-0.0.1-SNAPSHOT.jar這個JAR檔

執行JAR檔及測試程式
接下來我們要測試能不能執行剛剛組建成功的JAR檔,如果你有在IDEA裡面執行程式的話,請先停止IDEA內執行的程式,這是為了避免兩個程式同時使用同一個資料庫。
新增程式用的資料夾
請新增一個空資料夾,把剛剛組建成功的JAR檔複製到空資料夾。

執行Java指令
在剛剛新增的資料夾底下開啟終端機(CMD、PowerShell),執行Java指令

另外如果要終止程式,請在終端機輸入Crtl + c,可參考下圖,再按一次Enter即可繼續輸入指令。

打開瀏覽器

如果你發現裡面除了預設的5個顧客外,還有其他顧客,你可以修改application.properties檔案底下的spring.jpa.hibernate.ddl-auto,從update改成create-drop,並在IDEA裡面執行程式(請先終止剛剛使用Java指令執行的程式),之後終止IDEA裡面執行的程式。

回到剛剛的終端機重新執行Java指令,你會發現跟上面的圖片一樣的結果(只有預設的5個顧客)。
測試是否能正常儲存資料
你可以點擊New customer,並在下方欄位輸入測試顧客的名字

你會發現畫面上多了剛剛新增的測試顧客

為了確定資料有成功存入資料庫,我們將程式停止,再重新執行一次,如果跟上面的結果一樣,表示資料成功儲存到資料庫裡面了。
你也可以透過資料庫的管理軟體(如: phpMyAdmin)連線到資料庫查看資料庫的內容,也可以透過管理軟體修改顧客名字後回來網頁查看資料是否有更新。
為了確保相容性,通常會在不同環境下(以作業系統、處理器架構區分)測試專案,這次是因為使用的依賴在各平臺都是通用的,所以基本上在Windows上組建,也可以拿到Linux上執行,但有些函式庫(library)是OS-dependent,像是如果你直接引入OpenCV(不是使用Maven dependency),除了JAR檔以外,它在Windows上需要.dll,在Linux上需要.so,那就必須額外針對不同環境進行設定。
剛剛一直修改application.properties檔案底下的spring.jpa.hibernate.ddl-auto的目的是清空資料庫內的資料(因為我們在之前的章節有新增顧客資料到資料庫,需要清空資料庫,才能取得預期的結果),當值為update時,表示程式只會更新資料庫,也就是之前的資料會保留,通常在生產環境下使用,另一個值是create-drop,表示在開始執行程式時會生成資料(先清除原有的table內的資料,根據程式新增table及資料,像是我們的範例程式就是新增5個顧客),程式結束時會刪除資料(刪除程式新增的table),通常會用在開發環境。
Last updated