文档章节

ant打包和jar包混淆

哭你吃完
 哭你吃完
发布于 2014/11/14 09:33
字数 515
阅读 129
收藏 0

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
这些工具用起来都特别简单,相关界面截图如下:





本文转载自:http://blog.csdn.net/dawanganban/article/details/41044353

哭你吃完

哭你吃完

粉丝 18
博文 457
码字总数 950
作品 0
广州
网页/平面设计
私信 提问
加载中

评论(0)

Android Ant 批量多渠道打包实例

Android Ant 批量多渠道打包实例 关于批量打包,无需多言,这是每个国内Android开发者必须面对的一个问题。 下面,我就以开源项目「知乎小报」为例,详细说明如何使用ANT实现批量打渠道包。 ...

Cundong
2014/10/17
4.9K
7
Android ANT多渠道打包

在没用AndroidStudio的Gradle构建项目之前,多渠道打包一般都是基于ANT构建,所以在此记录一下,以供查阅! 一、文件准备 1、首先要去官网下载ANT代码。 ANT官网下载地址 2、下载ANT循环打包...

军歌
2014/11/20
2K
3
Ant编译android,并Proguard代码混淆,v4混淆配置

忙了三四周,总算把购开心的ios版(appStore搜“购开心”)成功翻译成了android版,UI效果基本保持一致,上一张UI效果图吧,很养眼的: 还不错吧,进入正题吧。 以前一直是让我徒弟混淆和打包的...

辉兔狼
2013/09/03
6.8K
1
基于Jenkins + Tomcat 的安卓客户端可持续化构建及发布下载(loltube.cn)

一. Jenkins 可持续化构建环境请参考 文章 http://my.oschina.net/long0419/blog/183299 二. 基于搭好可持续构建环境完成基础上 ,使用Ant 来编写安卓持续化构建环境 (未使用gradle 原理一样...

long0419
2015/04/02
262
0
在 Eclipse 下利用 gradle 构建系统

在 eclipse 下利用 gradle 构建系统 基本开发环境 操作系统:本教程使用的为 Windows Vista Enterprise, 如果您的系统是 Linux 的,请选择下载对应版本的其他工具,包括开发工具、Java EE 服...

红薯
2010/08/16
1.7K
2

没有更多内容

加载失败,请刷新页面

加载更多

项目讲解4

分组取topN的方法: 数据的预处理为使用mapreduce 每日新访客: 回头/单次访客统计: 漏斗模型: 使用python产生数据 1.统计每个步骤的总访问人数 create table tmp_page_views like ods_web...

七宝1
42分钟前
49
0
笔记:pyecharts可视化

# 加载数据import pandas as pddf = pd.read_excel(r"D:\我的文档\数据源\采购商品出库综合查询 - Python.xlsx",header = 2)df # 计算出结果df1 = df.groupby(["部门"])["总销售额"......

tengyulong
55分钟前
56
0
如何在div中垂直对齐图像 - How to vertically align an image inside a div

问题: How can you align an image inside of a containing div ? 如何在包含div内部对齐图像? Example 例 In my example, I need to vertically center the <img> in the <div> with cla......

javail
今天
59
0
用原生JS模拟Vue的State插件的写法

<html><body> <input type="text" id="myinput"></body><script> var myinput = document.querySelector('#myinput'); function Vue() { } Vue.Use = function......

lilugirl
今天
81
0
space_sniffer 清理 磁盘

http://www.uderzo.it/main_products/space_sniffer/ 下载直接运行 , 可以看到占用空间比较大的一些文件夹, 然后根据情况删除 anaconda和pr的缓存占了很大一部分 金山居然也这么大?...

阿豪boy
今天
85
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部