[英]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.