proguard-maven-plugin java 8

Cho*_*ith 7 proguard maven-3 java-8

我试图使用Proguard来混淆我的Java 8应用程序.

Proguard从5.0版开始支持Java 8

由于某种原因,program-maven-plugin忽略了我的配置以使用Proguard 5.1版并使用4.3,与Java 8不兼容.

我的配置是

<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>
    <proguardVersion>5.1</proguardVersion>
    <obfuscate>true</obfuscate>
            <options>
                <option>-allowaccessmodification</option>
                <option>-keep class mypackage.Testt</option>
            </options>
            <libs>
                <lib>${java.home}/lib/rt.jar</lib>
        <lib>${java.home}/lib/javafx-mx.jar</lib>
            </libs>
        </configuration>
        <dependencies>
          <dependency>
            <groupId>net.sf.proguard</groupId>
            <artifactId>proguard-base</artifactId>
            <version>5.1</version>
            <scope>runtime</scope>
          </dependency>
        </dependencies>
  </plugin>
Run Code Online (Sandbox Code Playgroud)

任何线索?

韩国社交协会,

Cho*_*ith 9

回答我自己的问题......碰巧Proguard 5.1版尚未在Maven资源库中提供.有必要手动下载并运行:

mvn install:install-file -Dfile=./proguard.jar -DgroupId=net.sf.proguard -DartifactId=proguard -Dversion=5.1 -Dpackaging=jar
Run Code Online (Sandbox Code Playgroud)

此外,正确的Proguard配置是:

<dependency>
            <groupId>net.sf.proguard</groupId>
            <artifactId>proguard</artifactId>
            <version>5.1</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)

  • 无需手动下载.你应该从弃用的工件`proguard`迁移到`proguard-base`.请参阅[mvnrepository.com上的Proguard Base](https://mvnrepository.com/artifact/net.sf.proguard/proguard-base) (4认同)