【发布时间】:2016-05-17 12:58:54
【问题描述】:
我正在尝试在我的代码库中找到一种方法来支持 2 个不同版本的 API。它们具有相同的包名称,但在底层的工作方式却大不相同(两个完全不同的系统)。我怎样才能做到这一点?
这两个 API 都依赖于 Bouncy Castle,但它们使用不同的版本。我如何也考虑到这一点?
【问题讨论】:
-
你可以使用工具来重命名包,即使是在内置的 jar 中,或者你可以使用 OSGi 之类的东西(重命名包更容易)
-
您打算如何在自己的代码中使用这些库? 2 个不同的版本意味着 2 个不同的方法签名(例如)......您必须制作 2 个不同版本的应用程序......我在这里看不到任何其他选择......
-
@PeterLawrey 您使用过或知道哪些工具?我刚刚发现一个名为“Jar Jar Links”的似乎可以做到这一点。
-
@Pras 当我需要与旧系统通信时,我将使用旧 API,当我需要与新系统通信时,我将使用新 API。该应用程序的 2 个版本无法运行。
-
您的应用程序是某种网络服务吗? RESTfull 服务?在这种情况下,2 个不同的端点可以解决问题……或者,我不知道您将如何区分旧系统和新系统……您是否能够在第一个系统中区分这两个系统地点?
标签: java configuration-management