【问题标题】:Can I keep same jars with two different versions in java?我可以在java中保留两个不同版本的相同罐子吗?
【发布时间】:2014-03-24 01:36:59
【问题描述】:

在我的网络应用程序中,已经有一个 3.6.2 版本的 lucene-core jar,现在要在同一个项目中添加不同的功能,我需要最新版本的 lucene-core jar,即 4.4.0。

当我用以前的 jar 替换最新的 jar 时,它会引发编译错误,因为 Lucene 不维护向后兼容性。

我新添加的功能不适用于 3.6.2 版本。我知道不可能将两个 jar 版本都保存在 lib 中。请提出解决方案。

【问题讨论】:

    标签: java jar lucene conflict


    【解决方案1】:

    哦,是的罐子地狱!

    如果可能,将您的 Lucene 功能移至单独的层,例如 Web 服务,并从您的 Web 应用程序作为 Web 服务客户端访问此服务。当然,这意味着某种开销(网络等)。

    另一种可能性是使用 OSGI 解决方案,例如 JBoss Fuse,它允许为 Web 应用程序提供服务。将您的 Lucene 功能移动到单独的模块(每个模块使用不同的 Lucene 版本)并将服务导入您的 Web 应用程序。优点是使用此解决方案您可以直接访问服务而无需网络开销。

    【讨论】:

    • 我也想到了 Web 服务解决方案,但 OSGI 解决方案看起来不错。我不知道相同的。我会为此努力的。谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-29
    • 2010-12-19
    • 1970-01-01
    • 2018-07-14
    • 1970-01-01
    相关资源
    最近更新 更多