[英]Writing modular Java applications
我有一個具有以下結構的項目:
+---main
| \pom.xml
+---module1
| \pom.xml
+---module2
| \pom.xml
+---module3
| \pom.xml
+---module4
| \pom.xml
+---pom.xml
這些模塊使用ServiceLoader
機制來注冊其服務。 主類在main
模塊中,它還負責使用ServiceLoader
機制在類路徑中加載服務。 問題是,在main
模塊是不知道的module1
, module2
, module3
和module4
,因為它們是由用戶獨立安裝。 我想要的是在啟動程序時將這些模塊中的所有類添加到類路徑中,以便ServiceLoader了解這些模塊中的服務。
目前,我在運行時從main
模塊加載這些模塊,但它似乎不是解決此問題的好方法,因為IDE不知道這些模塊,似乎需要更多時間來加載這些模塊在運行時。 我已經看過像Elasticsearch和PrestoDB這樣的模塊化Java項目如何處理這個問題,但似乎它們都在運行時加載已安裝的模塊。
在開發模塊化Java應用程序時如何處理這個問題? 假設我有一個名為plugins的目錄,其中包含用戶安裝的模塊的jar文件,是否有任何方法可以使用maven插件使用包含該目錄中所有jar的類路徑啟動應用程序? 或者我必須在運行時加載這些罐子?
通常,用戶將從腳本(或在具有一些可配置的java exe啟動器的窗口中)啟動應用程序。 在腳本中,您只需以與此類似的方式將插件文件夾添加到類路徑中:
java -cp plugin/* -jar app.jar
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.