0

我正在为开源 ETL 实用程序(Pentaho 数据集成)编写一个 FTP 客户端插件。PDI 默认使用旧版本的 Apache commons NET jar,我需要新版本提供的功能。

我不希望通过用新的 JAR 替换旧的 JAR 来影响 Pentaho 中的所有内容。我是否可以将它们放在一起,只告诉我的新代码从我添加的新 JAR 中专门导入?

4

1 回答 1

2

你不能从插件代码本身做到这一点。如果插件加载到不同的类加载器中,您只能这样做,在进入父类加载器之前,需要将其配置为从您自己的 apache commons jar 加载类。

大多数应用程序服务器都这样做:您可以添加一个 lib 文件夹,您的代码将在应用程序服务器自己的库之前使用该文件夹。

其他应用程序服务器支持 OSGi,它允许您部署同一库的多个版本,前提是它们具有正确的 MANIFEST.MF 文件。在这种情况下,您可以在自己的 MANIFEST.MF 文件中指定您需要的版本。

Pentaho Kettle 显然支持 OSGi 插件。

于 2012-10-02T15:24:33.840 回答