<?xml version="1.0" encoding="UTF-8"?>

<project name="projectName" default="zip" basedir=".">

<target name="setvar"> 变量的设定

<property name="build" value="build"/>

<property name="buildClass" value="${build}/classes"/>

<property name="buildDist" value="${build}/dist"/>

<property name="buildDistLib" value="${buildDist}/lib"/>

<property name="module" value="testModule"/>

<property name="lib" value="lib"/>

<property name="lastvalidatetime" value="lastvalidatetime"/>

<property name="src" value="src"/>

<path id="my-class-path"> //设置path变量

<fileset dir="${lib}" includes="*.jar"/>

</path>

<tstamp> //设置运行的时间戳变量

<format property="today" pattern="MM/dd/yyyy hh:mm aa" locale="en"/>

<format property="time" pattern="yyyyMMdd_HHmmss" locale="en"/>

<format property="date" pattern="yyyyMMdd" locale="en"/>

</tstamp>

<property name="timestamp" value="${time}"/>

<property file="build.properties"/>//引入property文件,之后可以用里面的key获取value,如:build.version=4.0

<property name="build.name" value="${module}_v${build.version}_${date}"/>

<property name="versionPath" value="/version"/>

</target>

<target name="clean" depends="setvar">

<delete dir="${build}"/>//删除build文件夹

<mkdir dir="${build}"/>//创建 build文件夹

<mkdir dir="${buildClass}"/>//创建build/classes文件夹

<mkdir dir="${buildDist}"/>//创建build/dist文件夹

<mkdir dir="${buildDistLib}"/>创建build/dist/lib文件夹

</target>

<target name="compile-classes" depends="clean"> //编译,依赖clean

    //http://ant.apache.org/manual/Tasks/javac.html

    //必须要有srcdir,除非有内嵌的<src>

<javac debug="on" deprecation="on" includeantruntime="false" source="1.6" target="1.6" destdir="${buildClass}"> //编译到build/classes

<classpath>//The classpath to use.需要依赖哪些包时

<path refid="my-class-path"/>

</classpath>

<src path="${src}"/>

</javac>

</target>

<target name="jar" depends="compile-classes">//打包jar

<jar jarfile="${build}/${module}.jar" basedir="${buildClass}"> //将编译出build/classes的class打包为build\testModule.jar

<manifest/>

</jar>

</target>

<target name="work" depends="jar">

<copy todir="${buildDistLib}">//复制文件到build/dist/lib

<fileset dir="${lib}" includes="*.jar"/> //复制文件${lib}下所有jar文件到${buildDistLib}

<fileset dir="${build}" includes="${module}.jar"/> //复制文件${build}下testModule.jar文件到${buildDistLib}

</copy>

<copy todir="${buildDist}">

<fileset dir="./" includes="*.bat,lastsynctime/*,deviceType/*,"/>//复制当前目录去.bat...到${buildDist}

</copy>

<copy todir="${buildDist}/config.default">//复制config目录去${buildDist}/config.default目录

<fileset dir="config" includes="**"/>

</copy>

<copy todir="${buildDist}" file="README.md" />

<copy todir="${buildDist}" file="init.sql" />

<copy todir="${buildDist}" file="curlTool.rar" />

<delete dir="${buildClass}"/>

<delete file="${build}/${module}.jar"/>

<property name="versionFolder" value="${buildDist}/${versionPath}"/>

<delete dir="${versionFolder}"/>

<mkdir dir="${versionFolder}"/>//创建${buildDist}/${versionPath}文件夹

<property name="fileName" value="${versionFolder}/${build.name}.txt"/>

<echo message="** Build Information ** ${line.separator}" file="${fileName}"/> //将显示信息输入到文件${fileName}换行

<echo message="Version: ${build.version}${line.separator}" file="${fileName}" append="true"/>//将显示信息输入追加到文件${fileName}换行

<echo message="Build Time: ${timestamp}${line.separator}" file="${fileName}" append="true"/>

<echo message="Java Version: ${java.runtime.version}${line.separator}" file="${fileName}" append="true"/>

<!-- MD5 info-->

<echo message="--- md5 info ---${line.separator}" file="${fileName}" append="true"/>

<checksum file="${buildDist}/${lib}/test1.jar" property="test1MD5"/> //check MD5 test1.jar 到test1MD5

<echo message="test1.jar:${test1MD5}${line.separator}" file="${fileName}" append="true"/>

<checksum file="${buildDist}/${lib}/${module}.jar" property="test2MD5"/>

<echo message="${module}.jar:${test2MD5}${line.separator}" file="${fileName}" append="true"/>

</target>

<target name="zip" depends="work">

<zip destfile="${build}/${module}.zip" basedir="${buildDist}"/> //将${buildDist}打包为${build}/${module}.zip

</target>

</project>

Ant的使用(一)的更多相关文章

  1. Jenkins 安装的HTML Publisher Plugin 插件无法展示ant生成的JunitReport报告

    最近在做基于jenkins ant  junit 的测试持续集成,单独ant junit生成的junitreport报告打开正常,使用Jenkins的HTML Publisher Plugin 插件无 ...

  2. React中使用Ant Table组件

    一.Ant Design of React http://ant.design/docs/react/introduce 二.建立webpack工程 webpack+react demo下载 项目的启 ...

  3. [Ant]Ant简易教程

    前言 Apache Ant,是一个将软件编译.测试.部署等步骤联系在一起加以自动化的一个工具,大多用于Java环境中的软件开发.由Apache软件基金会所提供. Ant是纯Java语言编写的,所以具有 ...

  4. jenkins / ant / jmeter 持续集成接口自动化

    1. 将 jmeter 脚本放在/var/lib/jenkins/workspace/Jmeter_auto/jmxpath路径下 2. 点击http://jk.facebank.net.cn/job ...

  5. Maven与Ant比较

    Maven与Ant比较 0 « 上一篇:Jenkins学习三:介绍一些Jenkins的常用功能» 下一篇:Jenkins学习四:Jenkins 邮件配置 posted @ 2015-03-25 16: ...

  6. 一.Jmeter+Ant+Jenkins搭建持续集成接口性能自动化测试

    微创新作品信息 1)微创新作品描述 A.为什么诞生: 1. 接口测试是测试系统组件间接口的一种测试.接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点.测试的重点是要检查数据的交换, ...

  7. Eclipce结合Ant进行编译、打包、传输、运行

    注意: 用Ant构建时,build path只能是单级的,如默认的src,如果是类似basePath/jsr253这样的话,运行Ant build时会报错,说找不到jsr253. (此文讲述的是以an ...

  8. ant 使用指南

    一.概述 ant 是一个将软件编译.测试.部署等步骤联系在一起加以自动化的一个工具,大多用于Java环境中的软件开发.在实际软件开发中,有很多地方可以用到ant. 开发环境: System:Windo ...

  9. 在Eclipse中集成Ant配置

    提要:本文将向你展示如何使用Eclipse设置为Ant所用的属性值和环境变量,并简要分析如何配置Ant编辑器以便从Eclipse内部操作Ant文件. 一. 修改Ant Classpath 在使用一个可 ...

  10. windows+ant+git+tomcat中ant直接获取git项目部署注意点

    最近项目搬迁到公司的"GitHub"上面原来的SVN的ant发布脚本要改下,于是百度ant获取git的方法太少了,windows平台上更是没有所以搞了两天,今天终于有点成果分享给大 ...

随机推荐

  1. 全面了解Nginx到底能做什么

    最近做项目需要动静分离,便用nginx的反向代理来实现.后来看到一篇好文,记录下. 来自https://www.jianshu.com/p/8bf73d1a758c 前言 本文只针对Nginx在不加载 ...

  2. 【LeetCode】389.找不同

    389.找不同 知识点:哈希表.抵消思想: 题目描述 给定两个字符串 s 和 t,它们只包含小写字母. 字符串 t 由字符串 s 随机重排,然后在随机位置添加一个字母. 请找出在 t 中被添加的字母. ...

  3. python 管理工具

    pip 包管理工具 virtualenv 虚拟环境管理工具 切换目录 virtualenvwrapper 虚拟环境管理工具加强版 pyenv python版本管理工具 修改环境变量 pyenv-vir ...

  4. 福昕foxit phantom pdf高级编辑器企业版10.1 pro安装破解教程

    本文提供福昕foxit phantom pdf高级编辑器企业版10.1的安装教程.pj教程,可以使用全部功能,注意的是此方法对个人版无效. 没有必要再尝试别的文章,仅看这一篇即可!别的文章亲测是通过修 ...

  5. 看视频学Bootstrap—在微软虚拟学院学习Bootstrap

    Bootstrap 是目前最流行的 HTML.CSS 和 JS 框架,用于开发响应式布局.移动设备优先的 WEB项目. 如果您希望在几个小时内对Bootstrap有一个直观的了解,观看微软虚拟学院(M ...

  6. 🔥 LeetCode 热题 HOT 100(21-30)

    46. 全排列 思路:典型回溯法 class Solution { public List<List<Integer>> permute(int[] nums) { Linke ...

  7. Spring Boot核心技术之Rest映射以及源码的分析

    Spring Boot核心技术之Rest映射以及源码的分析 该博客主要是Rest映射以及源码的分析,主要是思路的学习.SpringBoot版本:2.4.9 环境的搭建 主要分两部分: Index.ht ...

  8. JVM的内存管理机制-转载

    JVM的内存管理机制 一.JVM的内存区域 对于C.C++程序员来说,在内存管理领域,他们既拥有每一个对象的"所有权",又担负着每一个对象生命开始到终结的维护责任. 对Java程序 ...

  9. Vue Router根据后台数据加载不同的组件(思考->实现->不止于实现)

    实际项目中遇到的需求 同一个链接需要加载不同的页面组件.根据用户所购买服务的不同,有不同的页面展现. 有一些不好的实现方式 直接把这几个组件写在同一个组件下,通过v-if去判断.如果这么做的话,甚至可 ...

  10. user-agent随笔

    常用的user-agent: 一.pc端的user-agent汇总,各大浏览器 1.safari 5.1 – MAC Mozilla/5.0 (Macintosh; U; Intel Mac OS X ...