我正在开发一个库 jar(更像是其他库的包装器),它依赖于多个其他库 jar。我知道我可以使用 eclipse 创建一个罐子/胖罐子并运送它。例如,我有三个库 jar:Alib.jar、Blib.jar 和 Clib.jar。假设 Alib.jar 依赖于 Blib.jar。我可以制作一个胖罐子,比如 fatlib.jar,其中包含三个。
(Alib.jar --> Blib.jar) + Clib.jar == packages into ==> fatlib.jar (common APIs)
fatlib.jar == used by ==> client app
fatlib.jar 为客户端应用程序提供了一个通用的 API 接口。这些通用 API 使用 Alib.jar、Blib.jar 和 Clib.jar,并根据要求选择正确的类。比如说,当客户端应用程序不使用依赖于 Clib.jar 的 API 时,客户端应用程序应该可以灵活地在构建自身时删除 Clib.jar(很可能是 APK)。我想给客户端应用程序选项来选择它在构建时真正需要的依赖库 jar。
想知道这是否可能?我梦想着一些像 Fat Jar eclipse 插件这样的工具,它可以向您展示在构建 jar 时可以拾取或丢弃的所有 jar。可能不是。所以这是一个问题:是否可以在编译时从父 jar 中选择内部 jar?