在 proguard-maven-plugin 中使用 <proguardInclude></proguardInclude> 标签时出现 LifecycleExecutionException
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”
我正在使用 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”