簡體   English   中英

如何在帶有Pentaho的Java中處理需要2個版本的相同依賴項?

[英]How can I handle needing 2 versions of the same dependency in Java w/ Pentaho?

我有點卡紙。

我正在努力將軟件升級為Kettle 6.1。 具體來說,我們需要S3FileOutput的功能。 同時,我們的應用程序已經在將aws-sdk用於其他用途。

所以我遇到了一個問題:Pentaho Kettle需要版本1.0.aws-sdk。 另一方面,我們的應用程序需要aws-sdk的1.9.6。

為了提供更多細節,我們需要的Kettle功能在pentaho-big-data-legacy插件中。 即使我升級到最新版本的Kettle,pentaho-big-data-legacy仍使用舊版本的aws-sdk。

我已經閱讀了一些有關具有特殊類加載器的插件的信息,因此我正在考慮的一個選擇是,可能我沒有下載正確的依賴項。 但是,當我嘗試下載pentaho-big-data-plugin而不是pentaho-big-data-legacy時,出現了奇怪的錯誤,所以我不再走這條路了。

我想知道是否可以將Kettle Libs放在一個文件夾中,將我的應用程序庫放在另一個文件夾中,然后設置某種PENTAHO環境變量以從備用文件夾中提取庫。

另一個選擇是,如果我能以某種方式設置pentaho類加載器,但是我不知道這是否可行。

關於Kettle,在我的應用程序中具有2個版本的aws-sdk時,我有哪些選擇?

Maven可以做的不僅僅是下載依賴項。

Maven Shade插件可以幫助您解決當前的困境。 在構建期間,它可以重命名軟件包。

您將創建一個使用Pentaho Kettle以及相應版本的aws-sdk重新構建“胖罐”(或“超級罐”)的項目。 該依賴關系將在構建項目之前進行處理,因此您可以自由使用所需的任何版本的aws-sdk,因為程序包名稱不再存在沖突。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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