我无法制作 Proguard Maven 插件来混淆 Web 项目中的文件。我在 Stackoverflow 上尝试了一些解决方案 - 没有运气。
我的实际应用程序是使用 Maven 打包的基于 Vaadin 的应用程序,但我现在创建了一个示例演示项目https://github.com/taskadapter/projectX来说明问题。我的最终目标是创建一个 Web 应用程序 WAR 文件,其中所有 maven 模块(例如“util”)和 Web 应用程序代码(例如“SomeImportantHiddenClass”)都经过混淆处理。
构建失败:
[proguard] 错误:输入不包含任何类。您是否指定了正确的“-injars”选项?
我看到了http://maksim.sorokin.dk/it/2010/08/23/obfuscating-several-jars-in-one-single-maven-build-with-proguard/,但这对我来说没有意义。如果我在项目中的每个 maven 模块上分别运行 proguard 插件,那么如果同一个项目中的其他模块都“搞砸”了,它们将如何找到所需的类?
我假设我需要将 proguard 执行添加到 root pom.xml 或我的 web 模块,这实际上将东西打包到一个 WAR 文件中(参见 GitHub 上的项目)。
“injar”选项允许将 Jars 添加到混淆过程中,但我希望插件能够找到我的模块并混淆它们,而无需我对“../util/target/util.jar”之类的“injar”值进行硬编码。
加上 proguard 文档没有说明“injars”选项,它只描述了“injar”配置参数。在这种情况下,它们都不起作用。
我还看到Proguard 说它找不到任何类,但我不确定将所有类从“web”maven 模块移动到一个单独的模块是正确的解决方案,并且不确定它是否能正常工作。我会继续努力...