簡體   English   中英

使用時發生LifecycleExecutionException <proguardInclude></proguardInclude> 在proguard-maven-plugin中標記

[英]LifecycleExecutionException while using <proguardInclude></proguardInclude> tag in proguard-maven-plugin

我正在使用proguard-maven-plugin來混淆我的jar。 如果我采用這樣的插件結構。

    <plugin>
    <groupId>com.github.wvengen</groupId>
    <artifactId>proguard-maven-plugin</artifactId>
    <version>2.0.11</version>
    <dependencies>
    <dependency>
    <groupId>net.sf.proguard</groupId>
    <artifactId>proguard-base</artifactId>
    <version>5.0</version>
    <scope>runtime</scope>
    </dependency>
    </dependencies>
    <executions>
    <execution>
    <phase>package</phase>
    <goals>
    <goal>proguard</goal>
    </goals>
    </execution>
    </executions>
    <configuration>
    <maxMemory>576m</maxMemory>
    <proguardVersion>5.0</proguardVersion>
    <obfuscate>true</obfuscate>
    <injar>${project.build.finalName}.jar</injar>
    <outjar>build/lib/${project.build.finalName}.jar</outjar>
    <outputDirectory>${project.build.directory}</outputDirectory>

    <libs>
    <lib>${java.home}/jre/lib/rt.jar</lib>
    <lib>${java.home}/jre/lib/jce.jar</lib>
    </libs>
    <options>
    <option>-keep public class * { protected *;}</option>
    </options> 
    </configuration>
    </plugin>

為此,它可以正常工作,並給我一個模糊的jar,但是嘗試在此標簽的<proguardInclude></proguardInclude>中將其proguard.conf文件代替

<options>
<option></option>
</options> this tag it throw an exception
"**org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal com.github.wvengen:proguard-maven-plugin:2.0.11:proguard (default) on project**"

:喜歡

    <plugin>
    <groupId>com.github.wvengen</groupId>
    <artifactId>proguard-maven-plugin</artifactId>
    <version>2.0.11</version>
    <dependencies>
    <dependency>
    <groupId>net.sf.proguard</groupId>
    <artifactId>proguard-base</artifactId>
    <version>5.0</version>
    <scope>runtime</scope>
    </dependency>
    </dependencies>
    <executions>
    <execution>
    <phase>package</phase>
    <goals>
    <goal>proguard</goal>
    </goals>
    </execution>
    </executions>
    <configuration>
    <maxMemory>576m</maxMemory>
    <proguardVersion>5.0</proguardVersion>
    <obfuscate>true</obfuscate>
    <injar>${project.build.finalName}.jar</injar>
    <outjar>build/lib/${project.build.finalName}.jar</outjar>
    <outputDirectory>${project.build.directory}</outputDirectory>
    <proguardInclude>${basedir}/proguard.conf</proguardInclude>
    <libs>
    <lib>${java.home}/jre/lib/rt.jar</lib>
    <lib>${java.home}/jre/lib/jce.jar</lib>
    </libs>

    </configuration>
    </plugin>

我的proguard.conf包含-

    keepattributes 

    Signature,LineNumberTable,*Annotation*,LocalVariableTable,SourceFile
    -keep public class * { public protected *;}

    -keepclassmembers class **.R$* {
    public static <fields>;
    }

    -keepclassmembers class com/compny/blha/proj/Class/Container
    {

    }
    -keep fields com/compny/blha/proj/Class/VersionUID long;

我得到了解決方案,只是我需要像下面一樣更改progaurd.conf

  -keepattributes 

    Signature,LineNumberTable,*Annotation*,LocalVariableTable,SourceFile
    -keep public class * { public protected *;}

    -keepclassmembers class **.R$* {
    public static <fields>;
    }

    -keepclassmembers class com/compny/blha/proj/Class/Container
    {

    }
    -keep fields com/compny/blha/proj/Class/VersionUID long;

我在“ keepattributes”上犯了一個錯誤,應該是“ -keepattributes”

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM