2021年12月25日 星期六

3.3 使用Eclipse設定專案的模組相依關係

前面一共建立了4個專案,並各內含一個模組。模組間的依賴關係如下: 

模組

依賴模組

zoo.animal.feeding

zoo.animal.care

zoo.animal.feeding

zoo.animal.talks

zoo.animal.feeding

zoo.animal.care

zoo.staff

zoo.animal.feeding

zoo.animal.care

zoo.animal.talks

所以在編譯新的模組之前,都要先把相依的模組放到每個專案的mods資料夾內。然後使用javac的命令列指令,以「--module-path」指定相依的模組JAR檔目錄,以「-d」指定程式碼目錄,然後進行編譯。

雖然使用javac可以陸續編譯所有類別,但在Eclipse會老是顯示編譯失敗,讓人看了心裡不踏實:


解決方式是在Eclipse上設定每一個專案相依的模組,分別示範如下。

專案zoo.animal.feeding

因為沒有相依模組,因此不用設定。

專案zoo.animal.care

專案zoo.animal.care相依於zoo.animal.feeding,設定方式為:

1. 使用滑鼠右鍵點擊專案,選擇「Properties」,先開啟專案的屬性視窗。然後點選左側的Java Build Path選項,再點擊右側的Projects頁籤,可以看到和編譯本專案相關的2個路徑,一個是Modulepath,一個是Classpath。在過去Java還沒有模組化功能前,使用舊版Eclipse只會看到Classpath的選項:

2. 點選Modulepath選項並點擊按鍵Add,在彈出的Required Project Selection選單中,勾選專案zoo.animal.feeding:

3. 完成之後可以看到Modulepath下出現相依專案zoo.animal.feeding,點擊按鍵Apply and Close關閉專案屬性視窗:
4. 完成專案相依模組的設定後,專案編譯通過:

專案zoo.animal.talks

依循前例,開啟zoo.animal.talks專案的屬性視窗並設定Modulpath相依於專案zoo.animal.feeding與zoo.animal.care:

專案zoo.staff

依循前例,開啟zoo.staff專案的屬性視窗並設定Modulpath相依於專案zoo.animal.feeding、zoo.animal.care與zoo.animal.talks:



沒有留言:

張貼留言