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

标签 maven-plugin maven-3 proguard

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

<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>

这是我从执行 mvn clean package

中得到的结果

[proguard] 错误:您必须为收缩步骤指定“-keep”选项。

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

最佳答案

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

关于maven-plugin - Maven Proguard 处理其他应用程序将依赖的库 jar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5796951/

相关文章:

java - 如何在 Maven 中包含远程 jar 依赖项

java - 在Java源代码中隐藏密码

java - proguard 删除我用 keep 指定的内容

java - 离线使用 jib maven 插件构建 docker 容器的问题

maven-2 - Tomcat 7 - Maven 插件?

java - Maven 插件如何在执行期间发现自己的版本?

maven - 无法从 Jenkins 执行SonarQube分析

java - mvn Sonar :sonar throwing error

build - Flutter 应用程序 Android Studio 3.2.1,构建失败

maven - org.apache.maven.plugins 目标执行失败