具有独立依赖项的胖子

时间:2018-11-20 15:16:20

标签: java jar

我正在创建JDBC驱动程序,以向JDBC客户端提供一些基于文件的数据。为此,我需要其他依赖项,例如Apache Calcite(作为JDBC框架),Jackson(用于JSON解析)和其他诸如Apache commons libs的依赖项。

当前,驱动程序被隐藏在一个胖子罐中,但是为了不弄乱客户端,我不得不删除一些依赖项,而其他一些我与目标客户端中的版本保持一致。它现在正在工作,但是那样非常不令人满意。另外,由于存在其他依赖项冲突并且缺少某些依赖项,因此我无法在其他JDBC客户端中重用驱动程序。

这就是为什么我要问的问题,有人是否知道一种有效的方式将我自己的代码与所有不隐藏为JAR的依赖项一起放入JAR。例如:

/META-INF/*
/lib/* (external jars)
/com/... (my classes)

此外,我希望只有我的类对外部可见,并且依赖项仅由我使用。

这可能吗?目前,我只能考虑如上所述将所有内容放在一起,并使用自己的类加载器将外观放置在适当的位置以创建实际的类,该类也知道依赖项...

有没有更简单的解决方案?也许作为Maven插件? OSGi不是一个选择...

0 个答案:

没有答案