使用Prodgaurd混淆Spring Boot应用程序的步骤

时间:2018-11-22 10:20:27

标签: java maven spring-boot war obfuscation

我们已经使用Spring Boot实现了一个Web应用程序。效果也不错。

现在,我想对应用程序进行模糊处理。我读了一些博客,并且对此有所了解,然后尝试了。

我在POM文件中添加了以下代码。它编译正常。但是当我生成战争文件时。战争文件不会混淆(类文件的名称与原始名称相同)。

 <plugin>
        <groupId>com.pyx4me</groupId>
        <artifactId>proguard-maven-plugin</artifactId>
        <version>2.0.4</version>
        <executions>
            <execution>
                <phase>verify</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>

请帮助我混淆战争 以及如何检查生成的文件是否被混淆? 任何帮助表示赞赏。谢谢。

1 个答案:

答案 0 :(得分:0)

代替混淆WAR,您应该混淆WAR WEB-INF/lib目录中的库JAR。 WAR需要一个已知的类名来进行声明式配置,例如web.xml中的过滤器和Servlet定义。