通过proguard为模块中的缩小类创建源jar

时间:2014-03-20 18:01:01

标签: java maven proguard

有一个业务模块 - 比如其中一个应用程序中的kilo-business。现在,此模块中有一些API将由另一个应用程序使用(在组织内部 - 例如kilo-client1)。我使用Proguard(通过它的maven插件)只提取与API相关的类并从中创建一个JAR - 缩小的API JAR,称为kilo-business-apiskilo-client1使用此kilo-business-apis依赖项并调用该服务。作为一项策略,我们始终包含源以及我们在应用程序之间共享的任何工件(用于调试简便性和其他文档)。

在这种情况下,有没有一种方法可以让Proguard也提供(可能的)源文件(属于kilo-business模块)从它为kilo-business-apis使用的类来源哪个来源JAR可以召唤?实际上,我们不会将JAR缩小到从类中删除未使用的方法/变量的程度,因此给出源java文件也足够了。

据我所知,即使我们不发布它,也可以在eclipse中使用jd-eclipse或其他反编译来帮助调试,但是想检查我们是否可以生成源头文件,从而解决文档需求

一种想法是将kilo-business本身分解为kilo-business-apis的单独模块,其中只有API定义所在且kilo-businesskilo-client1都可以使用它,但不幸的是我不能因为遗产原因这样做。

提前致谢!

1 个答案:

答案 0 :(得分:1)

ProGuard可选择写出有关保留入口点(-printseeds),未使用的代码(-printusage)和模糊处理映射(-printmapping)的信息,但与源文件无关。如果您不对代码进行模糊处理,只需在处理后的输出中列出.class名称,然后找到相应的.java文件。