【问题标题】:How to obfuscate a webapp using Maven and ProGuard如何使用 Maven 和 ProGuard 混淆 webapp
【发布时间】:2011-05-29 17:14:41
【问题描述】:

我使用 Maven 和 maven-war-plugin 来构建我的 WAR。所有 JSP 都使用 jspc-maven-plugin 进行预编译,所有类都放入 JAR(WEB-INF/lib)中。到目前为止一切正常。现在我尝试配置 proguard-maven-plugin 来混淆我的代码。

首先我尝试在编译阶段混淆所有类,但随后我在预编译 JSP 时遇到了麻烦。我发现了一些定义包阶段的例子。但在这种情况下,我不知道如何处理我的 JAR 文件,该文件已经打包到 WAR 中。最后,我尝试简单地将我的 WAR 设置为 mywebapp.war。但这也行不通。我错过了什么?

        <plugin>
            <groupId>com.pyx4me</groupId>
            <artifactId>proguard-maven-plugin</artifactId>
            <version>2.0.4</version>
            <executions>
                <execution>
                    <phase>package</phase>
                    <goals>
                        <goal>proguard</goal>
                    </goals>
                </execution>
            </executions>               
            <configuration>
                <obfuscate>true</obfuscate>
                <includeDependency>false</includeDependency> 
                <injar>${project.artifactId}-v${project.version}.war</injar>
                <outjar>${project.artifactId}-v${project.version}-obf.war</outjar> 
                <outputDirectory>${project.build.directory}</outputDirectory> 
                <maxMemory>256m</maxMemory>
                <libs>
                    <!--  Java Runtime -->
                    <lib>${java.home}/../Classes/classes.jar</lib>
                    <lib>${java.home}/../Classes/jce.jar</lib>
                </libs>                 
                <options>
                    <option>-allowaccessmodification</option>
                    <option>-dontskipnonpubliclibraryclasses</option>
                    <option>-dontskipnonpubliclibraryclassmembers</option>
                </options>
            </configuration>
        </plugin>

你有什么提示和例子来完成这项工作吗?

非常感谢! 大卫

【问题讨论】:

  • 您能否提供有关您遇到的错误的更多信息?

标签: web-applications maven-2 obfuscation war proguard


【解决方案1】:

查看可用的Maven lifecycles。特别是默认生命周期。您可能遇到的问题是 Maven 可以保证某些插件,例如 jar 和 war 插件,但其他插件,例如您的 proguard 插件,它可能不会。

我认为,如果您将执行阶段从package 更改为prepare-package,那么应该在将 JSP 文件打包到 JAR 文件并随后打包到 WAR 文件之前对其进行混淆处理。并且该阶段不应干扰您可能拥有的任何类的编译。

【讨论】:

  • jgifford25,感谢您为我指明了正确的方向。准备包阶段是关键。现在它按预期工作。谢谢。
  • 你有机会上传你的固定配置吗?
  • &lt;execution&gt;&lt;phase&gt;package&lt;/phase&gt; 更改为 &lt;execution&gt;&lt;phase&gt;verify&lt;/phase&gt;
猜你喜欢
  • 2016-04-14
  • 2012-09-25
  • 1970-01-01
  • 2023-03-24
  • 2010-10-14
  • 1970-01-01
  • 2012-06-24
  • 2021-08-10
  • 2017-01-31
相关资源
最近更新 更多