ant打包和jar包混淆

来源:互联网 发布:郑州大学网络 编辑:程序博客网 时间:2024/04/29 03:21

Ant是一种基于Java的build工具,类似于c语言中的makefile,这里做一记录,方便后面查看。

  1. <?xml version="1.0" encoding="UTF-8"?>    
  2. <project name="vailidategame" default="yguard" basedir=".">    
  3.     <property name="src" value="${basedir}/src" />    
  4.     <property name="lib" value="${basedir}/lib" />   
  5.     <property name="build" value="${basedir}/build" />    
  6.     <property name="build.class" value="${build}/classes" />  
  7.     <property name="app.name" value="FrameWork" />    
  8.     <property name="app.jar" value="${app.name}.jar" />   
  9.     <property name="obfuscationlog" value="${build}"/>  
  10.     <property name="obf.jar" value="${app.name}_obf.jar" />  
  11.     <property name="obfjarpath" value="${basedir}/lib"/>  
  12.     <property name="shrinklog" value="${project_name}_shrinklog.xml"/>  
  13.     <property name="renamelog" value="${project_name}_renamelog.xml"/>  
  14.     <!--请将下面的路径改为你本地的路径-->    
  15.     <property name="webserver" value="D:\build-tomcat\webapps" />   
  16.         
  17.     <!--定义CLASSPACH,编译时用到你外部加入的包-->    
  18.    <!--  <path id="classpath">    
  19.         <pathelement location="${src}" />   
  20.         <fileset dir="${lib}" includes="***.jar" />    
  21.     </path> -->  
  22.       
  23.     <!--删除任务-->    
  24.     <target name="clean" description="删除">    
  25.         <echo message="删除目录" />    
  26.         <delete dir="${build}" />    
  27.     </target>    
  28.     
  29.     <!--创建一个临时目录-->    
  30.     <target name="init" description="创建目录" depends="clean">    
  31.         <echo message="创建目录--以执行" />    
  32.         <mkdir dir="${build.class}" />    
  33.     </target>    
  34.     
  35.     <!-- 编译 -->  
  36.     <target name="compile" description="开始编译" depends="init">  
  37.            <echo message="生成jar开始……" />    
  38.            <javac srcdir="src" destdir="${build.class}">  
  39.                  <!-- <classpath>   
  40.                      <fileset dir="lib">   
  41.                          <include name="**/*.jar"/>   
  42.                      </fileset>  
  43.                  </classpath>  -->  
  44.            </javac>    
  45.     </target>  
  46.     <!-- 打成jar包 -->  
  47.     <target name="generjar" description="打包" depends="compile">  
  48.          <echo message="打成jar包"/>  
  49.           <jar jarfile="${build}/${app.jar}" basedir="${build.class}">  
  50.             <!-- <manifest>  
  51.                 <attribute name="Main-Class" value="bean.ant.TestAnt" />  
  52.             </manifest> -->  
  53.           </jar>  
  54.     </target>  
  55.       
  56.     <!-- 混淆任务 -->  
  57.    <!--  <target name="yguard" depends="generjar">  
  58.        <echo message="开始混淆"/>  
  59.        <taskdef name="yguard" classname="com.yworks.yguard.YGuardTask" classpath="yguard.jar" />  
  60.        <echo message="产生混淆文件"/>  
  61.        <yguard>  
  62.            <inoutpair in="${build}/${app.jar}" out="${build}/${obf.jar}"/>  
  63.        </yguard>  
  64.     </target> -->  
  65.      
  66.     <target depends="generjar" name="yguard">  
  67.       <taskdef name="yguard" classname="com.yworks.yguard.YGuardTask"  
  68.       classpath="yguard.jar"/>  
  69.       <!-- the following can be adjusted to your needs -->  
  70.       <yguard>  
  71.         <inoutpair in="${build}/${app.jar}" out="${build}/${obf.jar}"/>  
  72.         <shrink logfile="${shrinklog}">  
  73.           <keep>  
  74.             <class classes="protected"  
  75.             methods="protected" fields="protected">  
  76.               <patternset>  
  77.                 <include name="com.subao.validate.**.*"/>  
  78.                 <!-- <exclude name="com.subao.validate.http.**.*"/> -->  
  79.               </patternset>  
  80.             </class>  
  81.           </keep>  
  82.         </shrink>  
  83.         <rename logfile="${renamelog}">  
  84.           <property name="error-checking" value="pedantic"/>  
  85.           <keep>  
  86.             <class classes="protected"  
  87.             methods="protected" fields="protected">  
  88.               <patternset>  
  89.                 <include name="com.subao.validate.**.*"/>  
  90.                 <!-- <exclude name="com.subao.validate.http.**.*"/> -->  
  91.                 <exclude name="com.subao.validate.entity.**.*"/>  
  92.               </patternset>  
  93.             </class>  
  94.           </keep>  
  95.         </rename>  
  96.       </yguard>  
  97.     </target>  
  98. </project>    
大概解释一下:

1、上面project标签中的default代表默认执行的入口, basedir代表基准路径。

2、property标签定义变量。

3、target标签中就分别是相应的操作。

相关资源:

yguard混淆:http://download.csdn.net/detail/lxq_xsyu/8149559

jar包混淆工具:http://download.csdn.net/detail/lxq_xsyu/8149539

jar包反编译工具:http://download.csdn.net/detail/lxq_xsyu/8149513
这些工具用起来都特别简单,相关界面截图如下:



0 0