Ant的使用(一)
<?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的使用(一)的更多相关文章
- Jenkins 安装的HTML Publisher Plugin 插件无法展示ant生成的JunitReport报告
最近在做基于jenkins ant junit 的测试持续集成,单独ant junit生成的junitreport报告打开正常,使用Jenkins的HTML Publisher Plugin 插件无 ...
- React中使用Ant Table组件
一.Ant Design of React http://ant.design/docs/react/introduce 二.建立webpack工程 webpack+react demo下载 项目的启 ...
- [Ant]Ant简易教程
前言 Apache Ant,是一个将软件编译.测试.部署等步骤联系在一起加以自动化的一个工具,大多用于Java环境中的软件开发.由Apache软件基金会所提供. Ant是纯Java语言编写的,所以具有 ...
- jenkins / ant / jmeter 持续集成接口自动化
1. 将 jmeter 脚本放在/var/lib/jenkins/workspace/Jmeter_auto/jmxpath路径下 2. 点击http://jk.facebank.net.cn/job ...
- Maven与Ant比较
Maven与Ant比较 0 « 上一篇:Jenkins学习三:介绍一些Jenkins的常用功能» 下一篇:Jenkins学习四:Jenkins 邮件配置 posted @ 2015-03-25 16: ...
- 一.Jmeter+Ant+Jenkins搭建持续集成接口性能自动化测试
微创新作品信息 1)微创新作品描述 A.为什么诞生: 1. 接口测试是测试系统组件间接口的一种测试.接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点.测试的重点是要检查数据的交换, ...
- Eclipce结合Ant进行编译、打包、传输、运行
注意: 用Ant构建时,build path只能是单级的,如默认的src,如果是类似basePath/jsr253这样的话,运行Ant build时会报错,说找不到jsr253. (此文讲述的是以an ...
- ant 使用指南
一.概述 ant 是一个将软件编译.测试.部署等步骤联系在一起加以自动化的一个工具,大多用于Java环境中的软件开发.在实际软件开发中,有很多地方可以用到ant. 开发环境: System:Windo ...
- 在Eclipse中集成Ant配置
提要:本文将向你展示如何使用Eclipse设置为Ant所用的属性值和环境变量,并简要分析如何配置Ant编辑器以便从Eclipse内部操作Ant文件. 一. 修改Ant Classpath 在使用一个可 ...
- windows+ant+git+tomcat中ant直接获取git项目部署注意点
最近项目搬迁到公司的"GitHub"上面原来的SVN的ant发布脚本要改下,于是百度ant获取git的方法太少了,windows平台上更是没有所以搞了两天,今天终于有点成果分享给大 ...
随机推荐
- 11. Linux从入门到进阶
课程大纲 • Linux简介 • Linux基础 • Linux常用命令 • Shell编程&awk
- 软件开发(js+java开发)的启发
发现了个很重要的意义 1,一个对象,既包含被监听的参数,也包括监听处理本身 2,基于1的开发模式 3,在函数中定义监听器 4,1)高内聚: 统一面向对象,一个功能一个对象 不同对象不互相调用,不互相引 ...
- vue+canvas实现炫酷时钟效果的倒计时插件(已发布到npm的vue2插件,开箱即用)
前言: 此事例是在vue组件中,使用canvas实现倒计时动画的效果.其实,实现效果的逻辑跟vue没有关系,只要读懂canvas如何实现效果的这部分逻辑就可以了 canvas动画的原理:利用定时器,给 ...
- 【Mysql】InnoDB 中的 B+ 树索引
接上一篇内容,InnoDB 的作者想到一种更灵活的方式来管理所有目录项,是什么? 一.目录项记录页 其实这些用户目录项与用户记录很像,只是目录项中的两个列记录的是主键和页号而已,那么就可以复用之前存储 ...
- BZOJ2457 双端队列 题解
本题直接求解十分困难,因为在不知道整个序列的数字规律时当前所作决策都无法保证最优性. 考虑正难则反,题目转化为将一个非降序列分成尽量少的几段,让每段对应原问题的双端队列. 先将原数组排序,由于原数组下 ...
- 什么是ETL--ETL定义、过程和工具选型思路
ETL代表"提取.转换和加载".ETL 过程在数据集成策略中起着关键作用.ETL允许企业从多个来源收集数据并将其整合到一个集中的位置.ETL还使不同类型的数据可以协同工作. 概述 ...
- (java4)什么是计算机
(java4)什么是计算机 computer : 全称电子计算机,俗称电脑 能够按照程序运行.自动.高速处理海量数据的现代化智能电子设备 由硬件和软件组成 常见的由台式计算机,笔记本计算机,大型计算机 ...
- glassfish Client not authorized for this invocation.解决办法
javax.ejb.EJBAccessException at com.sun.ejb.containers.BaseContainer.mapLocal3xException(BaseContain ...
- SpringCloud升级之路2020.0.x版-2.微服务框架需要考虑的问题
本系列为之前系列的整理重启版,随着项目的发展以及项目中的使用,之前系列里面很多东西发生了变化,并且还有一些东西之前系列并没有提到,所以重启这个系列重新整理下,欢迎各位留言交流,谢谢!~ 上图中演示了一 ...
- swagger json导出word,Typora软件推荐!!!
场景: 前几天项目验收,赶了一整天补API接口设计文档,给爷整吐了.周末的时候就想能不能直接把swagger的json文件导出成word? 顺便学习一下NPOI的使用. 实现思路: 1.先把swaag ...