2014-10-12 80 views
2

我想混淆java類文件。我之前使用過ant,所以我在構建過程中通過在'build.xml'中包含以下代碼來設法對它們進行混淆。在pom.xml中包含proguard配置文件

<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> 

'config.pro'是proguard配置文件。 現在我正在嘗試用maven做同樣的事情。我正在學習maven,所以我不知道如何在'pom.xml'中做同樣的事情。 謝謝你,對不起的英語感到抱歉。

+0

我已經在工作中完成了這項工作。如果你可以等待星期一下午(CEST)...或者其他人可能更快。而且,你的英語並不差。 – 2014-10-12 16:18:12

回答

5
<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> 
+0

+1 IIRC這看起來幾乎完全像我用過的POM。只有'進程類':''後處理從編譯生成的文件,例如在Java類上進行字節碼增強。「_](https://maven.apache.org/guides /introduction/introduction-to-the-lifecycle.html#Lifecycle_Reference)。這正是ProGuard所做的,而且這些已經混淆的類將在_test_階段進行測試。 – 2014-10-19 11:31:07

0

我用過的項目在這裏似乎不再存在。這只是一個臨時測試項目。我們最終決定不使用Proguard。

但是,我使用proguard-maven-plugin並根據其Usage sectionProGuard手冊一起創建了我的POM。

+1

謝謝你的回答。我經歷了您提供的鏈接,並最終提出瞭解決方案。我會用我提出的代碼塊來回答這個問題。 – Muskan 2014-10-19 11:14:23

相關問題