Web applications 如何使用Maven和ProGuard混淆webapp

Web applications 如何使用Maven和ProGuard混淆webapp,web-applications,maven-2,obfuscation,war,proguard,Web Applications,Maven 2,Obfuscation,War,Proguard,我使用Maven和Maven war插件来构建我的war。所有JSP都是使用JSPCMaven插件预编译的,所有类都放在一个JAR(WEB-INF/lib)中。到目前为止一切正常。现在我尝试配置proguard maven插件来混淆我的代码 首先,我试图在编译阶段混淆所有类,但是在预编译JSP时遇到了麻烦。我发现了一些定义包阶段的示例。但是在这种情况下,我不知道如何处理我的JAR文件,它被打包到了战争中。最后,我尝试将我的WAR设置为mywebapp.WAR。但这也不起作用。我错过了什么

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

首先,我试图在编译阶段混淆所有类,但是在预编译JSP时遇到了麻烦。我发现了一些定义包阶段的示例。但是在这种情况下,我不知道如何处理我的JAR文件,它被打包到了战争中。最后,我尝试将我的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>

com.pyx4me
proguard maven插件
2.0.4
包裹
前卫
真的
假的
${project.artifactId}-v${project.version}.war
${project.artifactId}-v${project.version}-obf.war
${project.build.directory}
256m
${java.home}/./Classes/Classes.jar
${java.home}/./Classes/jce.jar
-允许访问修改
-DontskipnonPublicLibraryClass
-dontskipnonpubliclibraryclassmembers
你有什么提示和例子来完成这项工作吗

非常感谢! David

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


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

您能提供有关错误的更多信息吗?jgifford25,感谢您为我指出了正确的方向。准备包装阶段是关键。现在它可以正常工作了。谢谢。您有没有可能上传您的固定配置?将
软件包更改为
验证