2014-12-27 54 views
2

我有一個插件引用到多模塊maven項目中的proguard。用於多個maven模塊項目的proguard

我的項目的功能已經過充分測試,並且工作...直到我添加了proguard。

我的項目結構

parent-pom
-module-a-pom
-module-b-pom

tester-pom

  1. 模塊-B對模塊一個依賴。
  2. module-a和module-b都安裝到我的本地Maven存儲庫。
  3. 測試人員對模塊-a和模塊-b都有依賴性。
  4. 我的proguard.conf文件位於文件系統上的parent-pom pom.xml文件旁邊。
  5. 我在module-a和module-b pom.xml文件中配置了proguard。

我ProGuard配置文件看起來像這樣:

<plugin> <groupId>com.github.wvengen</groupId> <artifactId>proguard-maven-plugin</artifactId> <version>2.0.8</version> <executions> <execution> <id>process-classes-with-proguard</id> <phase>process-classes</phase> <goals> <goal>proguard</goal> </goals> <configuration> <injar>classes</injar> <proguardVersion>5.1</proguardVersion> <proguardInclude>${project.basedir}/../proguard.conf </proguardInclude> <libs> <lib>${java.bootstrap.classes}</lib> <lib>${java.secure.socket.extension.classes}</lib> <lib>${java.cryptographic.extension.classes}</lib> </libs> <obfuscate>true</obfuscate> </configuration> </execution> </executions> <dependencies> <dependency> <groupId>net.sf.proguard</groupId> <artifactId>proguard-base</artifactId> <version>5.1</version> <scope>runtime</scope> </dependency> </dependencies> </plugin>

我有我的計劃是使用GSON從我無法控制的外部組件deserialise一些傳入的JSON增加的複雜性。

執行ProGuard的作爲構建的一部分,使GSON代碼中引發NullPointerException異常

由proguard的影響的代碼是:

Gson gson = new Gson(); 
Type collectionType = new TypeToken<ArrayList<MyType>>(){}.getType(); 
ArrayList<MyType> myTypes = gson.fromJson(json, collectionType); 

如果proguard的在我的POM文件中註釋掉了(所以它不執行),這個代碼(和我的項目的其餘部分)就像一個魅力。

如何配置proguard來模糊我的代碼但不破壞功能?這是可能的多模塊項目?

是否任何人那裏知道如何配置多模塊maven項目的proguard?

注意:我已經試過this,這似乎對結果沒有任何影響。

+0

這對我來說仍然是一個阻礙問題。尋找答案。如果問題不明確,請告知我。 –

+0

沒有答案。甚至沒有評論?人們喜歡什麼更多的信息讓事情進展?很高興提供更多的信息,只是不知道還有什麼其他的補充,沒有別人的輸入。 –

回答

2

我最終得到了這個工作:

  1. 使用Windows Proguard的應用程序,並通過嚮導
  2. 導出配置
  3. 閉上眼選擇相對基本的設置,並按下開始按鈕。

..它的工作!

+1

你救了我的一天! –