【发布时间】:2012-12-28 12:18:25
【问题描述】:
我对proguard有点疑惑。 我的 pom.xml 中有这个设置 首先, 标签不起作用......如果我使用这个标签,proguard 的最终调用不包含 -injars 。 其次,我不确定是否可以只混淆 WEB-INF/lib 中发生的一个 jar(我在一个 jar 中编译所有代码)并过滤所有其他 lib。
<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 也放置了绝对路径。
【问题讨论】:
-
顺便说一句,对外部库的引用应使用
-libraryjars选项指定!
标签: java maven obfuscation proguard