ant打包和jar包混淆
2024-10-01 12:43:10
Ant是一种基于Java的build工具。相似于c语言中的makefile,这里做一记录。方便后面查看。
<?xml version="1.0" encoding="UTF-8"?>
<project name="vailidategame" default="yguard" basedir=".">
<property name="src" value="${basedir}/src" />
<property name="lib" value="${basedir}/lib" />
<property name="build" value="${basedir}/build" />
<property name="build.class" value="${build}/classes" />
<property name="app.name" value="FrameWork" />
<property name="app.jar" value="${app.name}.jar" />
<property name="obfuscationlog" value="${build}"/>
<property name="obf.jar" value="${app.name}_obf.jar" />
<property name="obfjarpath" value="${basedir}/lib"/>
<property name="shrinklog" value="${project_name}_shrinklog.xml"/>
<property name="renamelog" value="${project_name}_renamelog.xml"/>
<!--请将以下的路径改为你本地的路径-->
<property name="webserver" value="D:\build-tomcat\webapps" /> <!--定义CLASSPACH,编译时用到你外部增加的包-->
<!-- <path id="classpath">
<pathelement location="${src}" />
<fileset dir="${lib}" includes="***.jar" />
</path> --> <!--删除任务-->
<target name="clean" description="删除">
<echo message="删除文件夹" />
<delete dir="${build}" />
</target> <!--创建一个暂时文件夹-->
<target name="init" description="创建文件夹" depends="clean">
<echo message="创建文件夹--以运行" />
<mkdir dir="${build.class}" />
</target> <!-- 编译 -->
<target name="compile" description="開始编译" depends="init">
<echo message="生成jar開始……" />
<javac srcdir="src" destdir="${build.class}">
<!-- <classpath>
<fileset dir="lib">
<include name="**/*.jar"/>
</fileset>
</classpath> -->
</javac>
</target>
<!-- 打成jar包 -->
<target name="generjar" description="打包" depends="compile">
<echo message="打成jar包"/>
<jar jarfile="${build}/${app.jar}" basedir="${build.class}">
<!-- <manifest>
<attribute name="Main-Class" value="bean.ant.TestAnt" />
</manifest> -->
</jar>
</target> <!-- 混淆任务 -->
<!-- <target name="yguard" depends="generjar">
<echo message="開始混淆"/>
<taskdef name="yguard" classname="com.yworks.yguard.YGuardTask" classpath="yguard.jar" />
<echo message="产生混淆文件"/>
<yguard>
<inoutpair in="${build}/${app.jar}" out="${build}/${obf.jar}"/>
</yguard>
</target> --> <target depends="generjar" name="yguard">
<taskdef name="yguard" classname="com.yworks.yguard.YGuardTask"
classpath="yguard.jar"/>
<!-- the following can be adjusted to your needs -->
<yguard>
<inoutpair in="${build}/${app.jar}" out="${build}/${obf.jar}"/>
<shrink logfile="${shrinklog}">
<keep>
<class classes="protected"
methods="protected" fields="protected">
<patternset>
<include name="com.subao.validate.**.*"/>
<!-- <exclude name="com.subao.validate.http.**.*"/> -->
</patternset>
</class>
</keep>
</shrink>
<rename logfile="${renamelog}">
<property name="error-checking" value="pedantic"/>
<keep>
<class classes="protected"
methods="protected" fields="protected">
<patternset>
<include name="com.subao.validate.**.*"/>
<!-- <exclude name="com.subao.validate.http.**.*"/> -->
<exclude name="com.subao.validate.entity.**.*"/>
</patternset>
</class>
</keep>
</rename>
</yguard>
</target>
</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
这些工具用起来都特别简单,相关界面截图例如以下:
最新文章
- 微软发布 Windows Server 2016 预览版第三版,开发者要重点关注Nano Server
- 轻松进行iPad Safari设置
- delphi SPCOMM串口控件
- 网页颜色分辨测试小游戏的js化辨别及优化
- 浅谈我的编程之路——感谢引领我的leader
- 谈谈网站插入youtube视频播放
- 【ZOJ】3329 One Person Game
- 黄聪:NaviCat通过Http方式连接服务器的MySQL数据库(转)
- 【JavsScript】JavaScript MVC 框架技术选型
- close和shutdown函数的区别
- nginx 代理概念理解
- css基本框架
- Eclipse的安装及汉化图解
- javascript基础 之 表单
- 平安技术开放日质量保证技术专场第一期 [附部分 ppt]
- js的执行环境学习笔记
- 详解HTTP协议
- 特征选择 - Filter、Wrapper、Embedded
- 【Linux】SVN的安装和配置
- Python 使用 Redis 操作
热门文章
- (十进制高速幂+矩阵优化)BZOJ 3240 3240: [Noi2013]矩阵游戏
- HIbernate中openSession和getCurrentSession
- 多线程编程TSL相关的技术文档
- [yueqian_scut]Android多点触控技术和应用框架
- Javascript中的with用法
- 这里是指推送通知跟NSNotification有区别:
- ThinkPHP5+Redis单例型购物车
- Java io 操作
- Activity全屏沉浸状态
- 火狐浏览器下载文件中文乱码,文件名中的空格变加号(";+";)的问题