逝者如斯夫

          靜而思之
          數據加載中……

          關于 Maven + Proguard

          ??? 以前試過在Ant下使用Proguard,感覺挺簡單的,使用Maven后,明顯復雜多了,復雜不在Proguard,而在proguard-maven-plugin。
          ??? 配置如下:

          <plugin>
          ????
          <groupId>com.pyx4me</groupId>
          ????
          <artifactId>proguard-maven-plugin</artifactId>
          ????
          <executions>
          ????????
          <execution>
          ????????????
          <phase>package</phase>
          ????????????
          <goals>
          ????????????????
          <goal>proguard</goal>
          ????????????
          </goals>
          ????????
          </execution>
          ????
          </executions>
          ????
          <configuration>
          ????????
          <obfuscate>true</obfuscate>
          ????????
          <proguardInclude>${basedir}/proguard.pro</proguardInclude>
          ????????
          <libs>
          ????????????
          <lib>${java.home}/lib/rt.jar</lib>
          ????????????
          <lib>${java.home}/lib/jsse.jar</lib>
          ????????????
          <lib>${java.home}/lib/jce.jar</lib>
          ????????
          </libs>
          ????
          </configuration>
          </plugin>

          出現異常:


          [proguard]?Obfuscating
          [proguard]?Printing?mapping?to?[D:\cces\linker\target\proguard_map.txt]
          [proguard]?Preverifying
          [proguard]?Unexpected?error?while?performing?partial?evaluation:
          [proguard]???Class?=?[net/sicross/tms/service/cces/SearchFlightOrderDetailService]
          [proguard]???Method?=?[getRouteDetail(Ljava/util/Map;)Ljava/util/List;]
          [proguard]???Exception?=?[java.lang.IllegalArgumentException]?(Can't?find?common?super?class?of?[java/util/List]?and?[java/lang/StringBuffer])
          [proguard]?Unexpected?error?while?preverifying:
          [proguard]???Class??=?[net/sicross/tms/service/cces/SearchFlightOrderDetailService]?[proguard]???Method?=?[getRouteDetail(Ljava/util/Map;)Ljava/util/List;]
          [proguard]???Exception?=?[java.lang.IllegalArgumentException]?(Can't?find?common?super?class?of?[java/util/List]?and?[java/lang/StringBuffer])
          [proguard]?java.lang.IllegalArgumentException:?Can't?find?common?super?class?of?[java/util/List]?and?[java/lang/StringBuffer]
          [proguard]?????at?proguard.evaluation.value.ReferenceValue.generalize(ReferenceValue.java:330)
          [proguard]?????at?proguard.evaluation.value.ReferenceValue.generalize(ReferenceValue.java:467)
          [proguard]?????at?proguard.evaluation.Variables.generalize(Variables.java:137)
          [proguard]?????at?proguard.evaluation.TracedVariables.generalize(TracedVariables.java:140)
          [proguard]?????at?proguard.optimize.evaluation.PartialEvaluator.evaluateInstructionBlock(PartialEvaluator.java:637)

          ??? 根據異常,先是懷疑有什么jre的包沒有導入,增加了另外幾個也不行。在懷疑是jdk編譯版本的問題,因為輸出目標jdk版本是1.6的,在proguard-maven-plugin的configuration中增加下面的配置也沒有。

          <options>
          ????
          <option>-target?1.6</option>
          </options>

          ??? 最后,將maven的target=1.6改為1.5后,異常消失。


          <plugin>
          ????
          <groupId>org.apache.maven.plugins</groupId>
          ????
          <version>2.0.2</version>
          ????
          <artifactId>maven-compiler-plugin</artifactId>
          ????
          <configuration>
          ????????
          <source>1.5</source>
          ????????
          <target>1.6</target>
          ????????
          <encoding>UTF-8</encoding>
          ????
          </configuration>
          </plugin>



          Powered by ScribeFire.

          posted on 2010-02-01 11:53 ideame 閱讀(6980) 評論(1)  編輯  收藏 所屬分類: Configuration

          評論

          # re: 關于 Maven + Proguard  回復  更多評論   

          proguard.pro是如何寫的呀
          2013-09-06 13:19 | maofan
          主站蜘蛛池模板: 新郑市| 遂昌县| 五大连池市| 福清市| 禄劝| 保山市| 雅江县| 垣曲县| 济宁市| 商洛市| 故城县| 漾濞| 金堂县| 新邵县| 义乌市| 界首市| 长丰县| 沽源县| 亳州市| 葫芦岛市| 房山区| 华亭县| 乐山市| 寻乌县| 新和县| 六盘水市| 郁南县| 手机| 菏泽市| 伊宁市| 乌拉特前旗| 离岛区| 高淳县| 麻城市| 岗巴县| 黎城县| 页游| 莲花县| 萝北县| 东阿县| 浦城县|