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

发布于 2024-11-03 19:04:57 字数 1218 浏览 3 评论 0原文

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

<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”选项.

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

Here is what my build plug in stanza looks like:

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

Here is what I get from execution of mvn clean package

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

How do I specify the keep options for a library where I just want obfuscation?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

马蹄踏│碎落叶 2024-11-10 19:04:57

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

You must define with the -keep option the entry points of your application, because you can't obfuscate it. For example if your main class is obfuscated it will be renamed and you won't be able to launch it. The same for public interfaces of your APIs.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文