Maven Proguard处理其他应用程序将依赖的库jar

2 proguard maven-plugin maven-3

这是我的构建插件节的样子:

<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>
        <options>
            <option>-dontshrink</option>
            <option>-dontnote</option>
            <option>-allowaccessmodification</option>
            <option>-dontskipnonpubliclibraryclasses</option>
            <option>-dontskipnonpubliclibraryclassmembers</option>
        </options>
        <libs>
            <lib>${java.home}/lib/rt.jar</lib>
            <lib>${java.home}/lib/jsse.jar</lib>
        </libs>
    </configuration>
</plugin>
Run Code Online (Sandbox Code Playgroud)

这是我从执行中得到的 mvn clean package

[proguard] Error: You have to specify '-keep' options for the shrinking step.

如何为我想要混淆的库指定保留选项?

小智 6

您必须使用-keep选项定义应用程序的入口点,因为您无法对其进行模糊处理.例如,如果您的主类被混淆,它将被重命名,您将无法启动它.对于API的公共接口也是如此.