有一个业务模块 - 比如其中一个应用程序中的kilo-business
。现在,此模块中有一些API将由另一个应用程序使用(在组织内部 - 例如kilo-client1
)。我使用Proguard(通过它的maven插件)只提取与API相关的类并从中创建一个JAR - 缩小的API JAR,称为kilo-business-apis
。 kilo-client1
使用此kilo-business-apis
依赖项并调用该服务。作为一项策略,我们始终包含源以及我们在应用程序之间共享的任何工件(用于调试简便性和其他文档)。
在这种情况下,有没有一种方法可以让Proguard也提供(可能的)源文件(属于kilo-business
模块)从它为kilo-business-apis
使用的类来源哪个来源JAR可以召唤?实际上,我们不会将JAR缩小到从类中删除未使用的方法/变量的程度,因此给出源java文件也足够了。
据我所知,即使我们不发布它,也可以在eclipse中使用jd-eclipse或其他反编译来帮助调试,但是想检查我们是否可以生成源头文件,从而解决文档需求
一种想法是将kilo-business
本身分解为kilo-business-apis
的单独模块,其中只有API定义所在且kilo-business
和kilo-client1
都可以使用它,但不幸的是我不能因为遗产原因这样做。
提前致谢!
答案 0 :(得分:1)
ProGuard可选择写出有关保留入口点(-printseeds),未使用的代码(-printusage)和模糊处理映射(-printmapping)的信息,但与源文件无关。如果您不对代码进行模糊处理,只需在处理后的输出中列出.class名称,然后找到相应的.java文件。