ant打包和jar包混淆
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
这些工具用起来都特别简单,相关界面截图例如以下:
ant打包和jar包混淆的更多相关文章
- 使用ANT将Android打包成Jar包
本文主要实现使用ANT,将Android项目打包成jar,为方便其他项目使用. ANT可以去官网下载(http://ant.apache.org/) 先介绍打包的步骤,打包脚本下方贴出 步骤: 1,将 ...
- 【Android端】代码打包成jar包/aar形式
Android端代码打包成jar包和aar形式: 首先,jar包的形式和aar形式有什么区别? 1.打包之后生成的文件地址: *.jar:库/build/intermediates/bundles/d ...
- [Java] Java 打包成jar包 和 解压jar包
解压jar包 jar xf xxx.jar 打包成jar包 方法一:通过jar命令 jar命令的用法: 下面是jar命令的帮助说明: 用法:jar {ctxui}[vfm0Me] [jar-file] ...
- [JAR包] android引入JAR包,打包成JAR包,打包成Library项目,导入Library项目
(1)项目导入JAR包:1.在项目目录里建立一个libs目录,将外部jar包拷贝在里面.2.右键点击项目,Bulid Path->Configure Build Path3.在设置Libraie ...
- 【spring boot】idea下springboot打包成jar包和war包,并且可以在外部tomcat下运行访问到(转)
转自:https://www.cnblogs.com/sxdcgaq8080/p/7727249.html 接着上一章走呗:http://www.cnblogs.com/sxdcgaq8080/p ...
- 如何打包/运行jar包,及生成exe文件
关于如何打包/运行jar包,以及生成exe文件.之前各种查询.博客,终于搞明白究竟是咋回事.记得还做过笔记的.今天要打包生成exe用的时候,居然忘了咋怎来着.去查看之前的笔记,死活没找到(好像被删掉了 ...
- Android studio 将 Module 打包成 Jar 包
整理记录 AndroidStudio 把一个 module 项目打包成 jar 包. 一.默认自动生成的 jar 包 众所周知 android studio 会在library所依赖的 app运行 或 ...
- springboot打包成jar包后找不到xml,找不到主类的解决方法
springboot打包成jar包后找不到xml,找不到主类的解决方法 请首先保证你的项目能正常运行(即不打包的时候运行无误),我们在打包时经常遇到如下问题: springboot打包成jar包后找不 ...
- 【spring cloud】【IDEA】【Maven】spring cloud多模块打包,打包的jar包只有几k,jar包无法运行,运行报错:no main manifest attribute, in /ms-eureka.jar
======================================================================================== 引申:maven打包多 ...
随机推荐
- Android 开发最佳实践
原文地址:https://github.com/futurice/android-best-practices/blob/master/translations/Chinese/README.cn.m ...
- Unity3D_c#脚本注意要点
1. Inherit from MonoBehaviour 继承自MonoBehaviour All behaviour scripts must inherit from MonoBehaviour ...
- [UVALive 6661 Equal Sum Sets] (dfs 或 dp)
题意: 求从不超过 N 的正整数其中选取 K 个不同的数字,组成和为 S 的方法数. 1 <= N <= 20 1 <= K<= 10 1 <= S <= 15 ...
- hive1.2伪分布mysql数据库配置具体解释
hadoop2.6伪分布配置:http://blog.csdn.net/gamer_gyt/article/details/46793731 hive1.2 derby元数据库配置:http://b ...
- Beginning Python From Novice to Professional (9) - Socket
Socket 小型server: #!/usr/bin/env python import socket s = socket.socket() host = socket.gethostname() ...
- 一个操作oracle的c#类 含分页
有别于以前的一个OracleHelper,这个版各有所长,MARK下. using System; using System.Data; using System.Data.OracleClient; ...
- 11. Container With Most Water[M]盛最多水的容器
题目 Given \(n\) non-negative integers \(a_1,a_2,\cdots,a_n\), where each represents a point at coordi ...
- 关于spring和extjs对接的过程简述
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http:// ...
- BZOJ 2287 DP+容斥
思路: 先处理出来f[j]表示这i个物品都可用 填满容量j的方案数 容斥一发 处理出来g[j]=g[j-w[i]] 表示i不能用的时候 填满容量j的方案数 //By SiriusRen #includ ...
- HTML5中canvas介绍
1.什么是Canvas canvas 是 HTML5 提供的一个用于展示绘图效果的标签 canvas 提供了一个空白的图形区域,可以使用特定的JavaScript API来绘画图形(canvas 2D ...