我正在開發一個使用IntelliJ IDEA作爲IDE的JavaFX應用程序。如何在我的JavaFX的IntelliJ工件中集成Proguard模糊處理?
到目前爲止,一切順利,我已經配置了我的所有外部庫和我的JavaFX神器被正確創建。現在
我想(使用ProGuard)創建神器時整合混淆。
的IntelliJ有一個「預處理」和「後處理」選項中神器的屬性,我可以定義一個Ant任務要拼命地跑。
但我不知道如何創建任務,並告訴編譯器我迷惑選項。
非常感謝您事先的任何線索,
問候
我正在開發一個使用IntelliJ IDEA作爲IDE的JavaFX應用程序。如何在我的JavaFX的IntelliJ工件中集成Proguard模糊處理?
到目前爲止,一切順利,我已經配置了我的所有外部庫和我的JavaFX神器被正確創建。現在
我想(使用ProGuard)創建神器時整合混淆。
的IntelliJ有一個「預處理」和「後處理」選項中神器的屬性,我可以定義一個Ant任務要拼命地跑。
但我不知道如何創建任務,並告訴編譯器我迷惑選項。
非常感謝您事先的任何線索,
問候
有3層基本的方法你做到這一點:
下面是使用ProGuard與Ant和第三方案的一個基本的例子: http://www.reviewmylife.co.uk/blog/2007/10/20/proguard-eclipse-ant-buildxml/
要記住Proguard的最重要的事情是要混淆的一切必須是一個JAR文件中,你需要明確地告訴它不要混淆某些東西(比如你的程序入口點,通過反射訪問的東西等等)。
的JavaFX創建作爲切入點,要防止混淆文件:
-keepclasseswithmembers public class com.javafx.main.Main {
public *; public static *;
}
確保包括的Java/JavaFX的庫
-libraryjars "${java.home}/lib/rt.jar"
-libraryjars "${java.home}/lib/ant-javafx.jar"
-libraryjars "${java.home}/lib/jfxrt.jar"
如果您使用FXML文件,你「會想,以確保您的FXML文件也同樣更名爲各自的控制文件:
-adaptresourcefilecontents **.fxml
任何與@FXML註解是通過反射訪問,所以不要混淆他們:
-keepclassmembernames class * {
@javafx.fxml.FXML *;
}
ProGuard的網站上有大量的信息,但它可能很難神交。
說實話,有很多的,告訴你如何做到這一點在網絡上的例子。只是谷歌javafx proguard,你可能會找到一些很好的完整例子。
編輯:就IntelliJ如何將信息傳遞給Ant ..我不知道。它可能會傳遞一些變量,像一般的Ant屬性一樣引用。如果你在網上找不到它,我肯定JetBrains網站上有關於他們網站的信息。
如果是我,我只是創建一個ant腳本來編譯我的應用程序而不模糊處理,然後添加proguard一旦你已經擺脫了。
只是一些補充信息,關於在想法的「後處理」中運行Ant任務。
確保你有'默認'的目標。否則任務不會執行。 build.xml示例:
<?xml version="1.0"?>
<project name="ant_task" default="obfuscate" basedir=".">
<target name="obfuscate">
<taskdef resource="proguard/ant/task.properties"
classpath="/opt/proguard5.2.1/lib/proguard.jar" />
<proguard configuration="proguard.cfg"/>
</target>
</project>
非常感謝。 這解決了我的問題,現在一切都被混淆了! –