我们有一个 Shared Utilities 项目、两个独立的 SDK 项目(每个都指 Utilities)和一些插件项目,每个项目只使用其中一个 SDK。Shared Utilities 包含一些全静态类,这些类需要对提到的插件可见,但我们希望对它们隐藏其余类。
我们如何着手解决问题?我们希望使构建过程尽可能简单(我们使用 Ant 进行构建),并且尽可能少地依赖。
以下是我们迄今为止考虑的选项以及我们放弃每种方法的原因:
- 第二个共享实用程序项目,将提供给插件 - 将使部署更加困难。
- 从 Shared Utils 项目构建 2 个单独的 .jar-s,一个仅包含全静态实用程序,另一个包含需要隐藏的任何内容。这将使构建更加复杂,即对插件构建脚本的额外依赖。
- 在每个 SDK 中代理全静态类 - 重复的方法定义,但实现只是从 Shared 项目中调用相应的静态方法 - 似乎最轻松,缺点是我们需要手动复制 Javadoc。是否有一个简单的 Javadoc 标记,它会在生成时自动执行此操作?
- 将所有静态类转换为“普通”并在每个 SDK 中简单地创建子类 - 不必要的(在我看来)性能开销。