我对proguard有点困惑。我的 pom.xml 中有这个设置 首先,< injar > 标签不起作用......如果我使用这个标签,proguard 的最终调用不包含 -injars。其次,我不确定是否可以仅混淆 WEB-INF/lib 中发生的一个 jar(我在一个 jar 中编译所有代码)并过滤所有其他库。
<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>4.8</proguardVersion>
<obfuscate>true</obfuscate>
<maxMemory>1024m</maxMemory>
<includeDependency>false</includeDependency>
<options>
<option>-injars target/Test.war</option>
<option>-ignorewarnings</option>
</options>
<outjar>target/Test-obf.war</outjar>
<attach>false</attach>
<outputDirectory>${project.build.directory}</outputDirectory>
<proguardInclude>${basedir}\proguard.conf</proguardInclude>
<libs>
<lib>${java.home}/lib/rt.jar</lib>
</libs>
<addMavenDescriptor>false</addMavenDescriptor>
<skip>false</skip>
</configuration>
<dependencies>
<dependency>
<groupId>net.sf.proguard</groupId>
<artifactId>proguard</artifactId>
<version>4.4</version>
<scope>runtime</scope>
</dependency>
</dependencies>
</plugin>
使用该配置,我有很多警告,因为似乎 proguard 试图混淆 WEB-INF/lib 中的每个 jar 有人可以对此有所了解吗?先感谢您。
补充: 所有参数前面的输出问题对我来说非常棘手。据我了解,当您在 pom.xml 中同时指定 injars 和 outjars 时,不应使用 ${basedir}。原因 ${basedir} 转向绝对路径,并且 intenaly proguard 也放置了绝对路径。