我试图混淆java类文件。我以前使用过ant,所以我设法在构建过程中对它们进行了混淆,方法是在' build.xml'中包含以下代码。
<target name="-post-jfx-jar">
<!-- obfuscate and optimize by ProGuard -->
<taskdef resource="proguard/ant/task.properties" classpath="lib/proguard.jar" />
<proguard configuration="config.pro">
</proguard>
<move
file="${dist.jar.dir}/${ant.project.name}.jar"
tofile="${dist.jar}" verbose="true" overwrite="true" />
</target>
&#39; config.pro&#39;是proguard配置文件。 现在我正在尝试用maven做同样的事情。我正在学习maven所以我不知道如何在&#39; pom.xml&#39;中做同样的事情。 谢谢你,抱歉英语不好。
答案 0 :(得分:7)
<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>5.0</proguardVersion>
<obfuscate>true</obfuscate>
<injar>${project.build.finalName}.jar</injar>
<outjar>${project.build.finalName}-small.jar</outjar>
<outputDirectory>${project.build.directory}</outputDirectory>
<proguardInclude>${basedir}/config.pro</proguardInclude>
<libs>
<lib>${java.home}/lib/rt.jar</lib>
<lib>${java.home}/lib/jsse.jar</lib>
</libs>
</configuration>
<dependencies>
<dependency>
<groupId>net.sf.proguard</groupId>
<artifactId>proguard</artifactId>
<version>5.0</version>
<scope>runtime</scope>
</dependency>
</dependencies>
</plugin>
答案 1 :(得分:0)
我用过它的项目似乎不再存在了。这只是一个临时测试项目。我们最终决定不使用Proguard。
但是,我使用proguard-maven-plugin并根据其Usage section和ProGuard手册创建了我的POM。