麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學院 > 開發設計 > 正文

使用IntelliJIDEA開發一般Java應用程序時配置Allatori進行代碼混淆

2019-11-14 14:51:46
字體:
來源:轉載
供稿:網友

使用 IntelliJ IDEA 開發一般 java 應用程序時通過 Allatori 進行代碼混淆非常容易配置,下面總結一下本人經驗,介紹一下配置方法。

首先在 IDEA 的 Module 所在硬盤目錄內創建一個名為 allatori 的子目錄,將 Allatori 自己的 jar 文件都復制到這個子目錄下。然后在 IDEA 的 Module 所在目錄內創建兩個 xml 文件,一個是 Allatori 自己的混淆配置文件,命名為 config-allatori.xml;另一個是用于 Ant 構建的配置文件,命名為 build-allatori.xml。首先看 config-allatori.xml 文件的內容,基本可以作為一個模板

 1 <?xml version="1.0" encoding="UTF-8"?> 2 <config> 3     <jars> 4         <jar in="${artifact}" out="${artifact-obfuscated}"/> 5     </jars> 6  7     <classpath> 8         <jar name="lib/MySQL-connector-java-5.1.30-bin.jar"/> 9         <jar name="lib/netty-all-4.0.18.Final.jar"/>10         <jar name="../lib/jgoodies-common.jar"/>11         <jar name="../lib/jgoodies-forms.jar"/>12         <jar name="../lib/jna-platform.jar"/>13         <jar name="../lib/jna.jar"/>14     </classpath>15 16     <keep-names>17         <class template="class Launcher">18             <field access="/>19             <method template="private+ *(**)"/>20         </class>21         <class template="interface MacCameraDataCallback">22             <method template="private+ *(**)"/>23         </class>24         <class template="interface MacCameraErrorCallback">25             <method template="private+ *(**)"/>26         </class>27         <class template="interface MacCameraCaptureNativeLibrary">28             <method template="private+ *(**)"/>29         </class>30     </keep-names>31 32     <property name="log-file" value="log.xml"/>33 </config>

這里我的 Module 中有標準 Java 類,也有接口。含有 main 方法的啟動類 Launcher 不應被混淆,接口也不應被混淆,因為涉及到 JNA 的本地方法映射調用,所以這里顯示了如何在 Allatori 混淆配置中進行相應設置的方法。同時注意,由于我這個 Module 除了使用自己專有的第三方庫以外,還使用了 Module 所在項目的項目全局第三方庫,所以在上面的混淆配置的 <classpath> 小節部分可以看到必須指定準確的第三方庫相對或絕對路徑用于編譯混淆。因為開發一般 Java 應用程序,不必像 Android 應用程序那樣把第三方庫一同打進目標應用程序 jar 文件中,第三方庫的 jar 文件編譯后也是單獨存在的,所以混淆配置中不必指定第三方庫的類防止混淆。

下面再來看 build-allatori.xml 文件的內容,也可以作為一個模板:

這里主要是注意,${out.classes.absolute.dir} 以及 ${out.classes.absolute.dir}-obfuscated 所定義的 IDEA 針對項目 Module 編譯產生的目標類文件以及 jar 文件所在路徑一定要準確。

然后我們就要將 build-allatori.xml 加入到 IDEA 的 Ant Build 系統中,如下圖所示:

點擊 IDEA 右上部分 Ant Build 那個按鈕,在彈出的 Dock 小窗口中點擊“+”按鈕,然后選擇 build-allatori.xml 文件即可將其加入到 IDEA 的 Ant Build 系統中。

接下來,我們進入到 IDEA 的 Project Structure 配置中,創建好 Module 的 Artifacts,在其 Artifacts 的具體屬性配置中,需要指定其 Post-processing 使用 build-allatori.xml 中定義的名為“你的module名字-obfuscated”的 target(我這里是 MacCameraCaptureTest-obfuscated),如下圖所示:

注意紅色區域里面,要把 Run Ant target 前面勾選中,然后點擊其右邊的“...”按鈕,會出現選擇窗口,你需要選擇 build-allatori.xml 中定義的名為“你的module名字-obfuscated”的 target(我這里是 MacCameraCaptureTest-obfuscated)。

之后,點擊 IDEA 菜單“Build”->“Build Artifacts...”菜單項并選擇“Build”命令來進行 Module 的編譯構建即可。你會在 Module 的 Artifact 生成目錄下看到兩個 jar 文件,其中一個名為“你的Module名字-obfuscated.jar”的文件(我這里是 MacCameraCaptureTest-obfuscated.jar),那就是混淆以后的 jar 文件了;不帶“-obfuscated”后綴的 jar 文件是沒有混淆的版本。

另外注意,如果需要清理 Module 已生成的類文件及 jar(包括混淆版本),可以通過 IDEA 的 Ant Build 執行 build-allatori.xml 中定義的“你的module名字-clean” target,就可以徹底清除它們。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 91网站免费在线观看 | 免费黄色入口 | 免费a级毛片永久免费 | 欧美四级在线观看 | 激情视频在线播放 | 国产乱free国语对白 | 亚洲人成综合第一网 | 欧美在线观看视频一区 | 极品销魂一区二区三区 | 久久久久久中文字幕 | 一区二区三区欧美精品 | 成人三区四区 | 成人一级片毛片 | lutube成人福利在线观看污 | 国产免费一级淫片 | 久久久久久久久久久影视 | 日本aaaa片毛片免费观看视频 | 国产亚洲精品综合一区91555 | 午夜免费一区 | 亚洲成人福利在线 | 免费小毛片 | 一区二区三区日韩精品 | 亚洲成人久久精品 | 鲁丝一区二区三区不属 | 日韩美香港a一级毛片 | 久章草在线观看 | 精品国产一区二区三区在线观看 | www.99re14.com | a集毛片 | 涩涩伊人 | 黑人三级毛片 | 玖草| 深夜福利视频绿巨人视频在线观看 | 狠狠久久| 欧美成人一区免费视频 | 欧美2区 | 国产精品视频一区二区噜噜 | av日韩一区二区 | 成人在线视频免费观看 | 日韩黄色片免费看 | 国产在线色|