簡體   English   中英

編寫模塊化Java應用程序

[英]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模塊是不知道的module1module2module3module4 ,因為它們是由用戶獨立安裝。 我想要的是在啟動程序時將這些模塊中的所有類添加到類路徑中,以便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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM