2016-12-29 83 views
4

我目前正在測試將現有應用程序遷移到拼圖模塊。我的一個模塊使用ElasticSearch及其Groovy插件。如何處理自動模塊中的拆分包?

  • org.elasticsearch:elasticsearch
  • org.elasticsearch.module:郎常規

不幸的是,他們都有一個拆分包,所以mvn install給我:

X讀從lang.groovy和elasticsearch包org.elasticsearch.script.groovy

一次爲描述符中的每個所需模塊,其中x是每個模塊的名稱。

我假設一個新的elasticsearch版本在Java 9最終的時候已經消除了拆分包,但是通常有辦法在傳統依賴中處理拆分包?

我希望能夠在類路徑上取代模塊路徑,但在閱讀this conversation on the mailing list後,似乎沒有辦法告訴Maven編譯器這樣做。


行家3.3.9 - Maven的編譯器插件3.6.0 - jdk9-EA + 149 - elasticsearch 2.3.3

回答

1

一些測試後,我認爲有幾個選項它應該解決許多(但絕對不是全部)第三方分割包裝的情況。

  1. 清理依賴性 - 可能依賴沒有實際需要,也可以通過更新(或多個不同)JAR更換
  2. 重塑自己的模塊分爲兩個模塊,每個模塊都從一個閱讀包第三方模塊(如果可能/合理的話)
  3. 將一個第三方模塊(或兩者)包裝在一個簡單的模塊中,它除了顯式地只導出模塊實際需要的包之外什麼也不做。

根據具體情況,其中一個選項可能很適合解決拆分包問題。但是他們都不能處理一些連貫的代碼實際上需要從分離包的兩個部分訪問類的情況。

相關問題