混淆共享的 Maven 模块?

Obfuscate a shared maven module?

我正在尝试混淆共享的 Maven 模块。

让我解释一下:我有一个多模块maven项目(一个有很多模块的项目)。我可以通过简单地在服务器模块 pom.xml 中包含 "proguard-maven-plugin" 插件来混淆服务器模块。我可以为我的 "client" 模块做同样的事情。结果是混淆的 server.jar 和 client.jar。我所有的依赖项都很好地放在 /lib/ 目录中。

我的客户端和服务器使用具有通用代码的 "shared" 模块。当我查看 /lib/ 目录时,我发现 shared.jar 没有被混淆(这可能是因为 proguard-maven-plugin 在 proguard 配置中将其添加为 libaryjar)。

现在我怀疑我遗漏了一些东西,但是当我的 client/server 被混淆时,我该如何混淆我的共享模块?

[edit] 我不能在共享模块 pom.xml 中包含 proguard-maven-plugin ,因为当 server/client 被 build/obfuscated,这是有道理的,因为混淆器重命名很多。

[edit] 不需要完整的示例,只需高层次概述如何解决这个问题就足够了。我可以弄清楚剩下的 ;-)

只是回答我自己的问题:maven 插件确实支持程序集标签。

在程序集部分包含共享库并在配置中排除共享库确实解决了问题。