ant使用备忘
ant是一个脚本构建工具,可能就是持续集成里面所需要的构建工具。
如果使用eclipse,里面会自带有ant工具,不需要再安装了,创建一个build.xml(或者其他的名字都可以),使用ant来运行就可以了
如果使用的命令行来运行ant,需要安装的步骤如下:
(1)下载ant,解压,无需安装过程。
(2)将ant的bin目录加入到系统的环境变量path中。
(3)运行ant,可以查看是否加成功了。
(4)在cmd中,将目录切换到工程所在的build.xml目录下,运行ant(这里默认为build.xml文件,还可以自己制定需要的文件)
关于build.xml文件的目录结构
<project name="**">
<property name="src" value="test" />
<path id="classpath1.path">
<fileset dir="${lib.dir}">
<property name="dest" value="classes" />
<property name="lib.dir" value="lib"/>
<include name="*.jar" />
</fileset>
<pathelement location="${src}" />
<pathelement location="${dest}"/>
</path>
<!-- 定义一些初始化的操作 !-->
<target name="init">
<delete verbose="true" includeemptydirs="true">
<fileset dir="${dest}">
<include name="**/*"/>
</fileset>
</delete>
<mkdir dir="${dest}" />
</target>
<!--编译 !-->
<target name="compile" depends="init">
<javac srcdir="${src}" destdir="${dest}" classpathref="classpath1.path"/>
<echo message="${TIME}" />
</target>
<!--接下来有一些你需要做的事情,比如打包部署,或者运行一个程序等 !-->
...
</project>
一些需要记录的东西:
(1)运行一个java程序的定义:
<target name="sendmail" depends="compile">
<java classname="com.sogou.maps.testApi.Integration" classpathref="classpath1.path">
<classpath path="${dest}"></classpath>
<arg value="${basedir}/${TIME}/emailable-report.html"></arg>
</java>
</target>
如果引用了第三方的包,那么需要在classpathref中定义,否则会提示错误信息。
(2)定义一个时间戳
<tstamp>
<format property="TIME" pattern="yyyyMMdd-hhmm" locale="en,UK"/>
</tstamp>
只要定义了这个,就定义了三个参数:DSTAMP,TSTAMP,TODAY,在下面的内容中就可以使用${DSTAMP}等了。在上面我们定义了自己的参数TIME,可以使用。这个时间戳在整个build过程中是不变的。
(3)在命令行里运行的参数
命令行选项总结:
ant [options] [target [target2 [target3] ...]]
Options:
-help print this message
-projecthelp print project help information
-version print the version information and exit
-quiet be extra quiet
-verbose be extra verbose
-debug print debugging information
-emacs produce logging information without adornments
-logfile file use given file for log output
-logger classname the class that is to perform logging
-listener classname add an instance of class as a project listener
-buildfile file use specified buildfile
-find file search for buildfile towards the root of the filesystem and use the first one found
-Dproperty=value set property to value
(4)一些ant自带的内置变量
os.name: 操作系统的名称。
basedir: 项目引用的根路径。
ant.home: Ant工具的根目录位置。
ant.file: 构件文件的绝对路径。
ant.version: ant的版本信息。
ant.java.version: ant检测到的JVM版本。
ant.project.name: 当前执行的项目名称及信息。
java.version: Java的版本信息。
java.home: Java的根目录位置。
java.class.path: Java类库的文件的位置。
line.separator: 换行符.
(5)编译的时候如果在windows下面使用命令行来运行ant的话,工程使用UTF-8,编译会有编码错误。需要设定编译的编码
<target name="compile" depends="init">
<javac srcdir="${src}" destdir="${dest}" classpathref="classpath1.path">
<compilerarg line="-encoding UTF-8"></compilerarg>
</javac>
<echo message="${TIME}" />
</target>
ant使用备忘的更多相关文章
- GIS部分理论知识备忘随笔
文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/ 1.高斯克吕格投影带换算 某坐标的经度为112度,其投影的6度带和3度带 ...
- python序列,字典备忘
初识python备忘: 序列:列表,字符串,元组len(d),d[id],del d[id],data in d函数:cmp(x,y),len(seq),list(seq)根据字符串创建列表,max( ...
- Vi命令备忘
备忘 Ctrl+u:向文件首翻半屏: Ctrl+d:向文件尾翻半屏: Ctrl+f:向文件尾翻一屏: Ctrl+b:向文件首翻一屏: Esc:从编辑模式切换到命令模式: ZZ:命令模式下保存当前文件所 ...
- ExtJs4常用配置方法备忘
viewport布局常用属性 new Ext.Viewport({ layout: "border", renderTo: Ext.getBody(), defaults: { b ...
- [备忘] Automatically reset Windows Update components
这两天遇到Windows 10的更新问题,官方有一个小工具,可以用来修复Windows Update的问题,备忘如下 https://support.microsoft.com/en-us/kb/97 ...
- ECMAScript 5(ES5)中bind方法简介备忘
一直以来对和this有关的东西模糊不清,譬如call.apply等等.这次看到一个和bind有关的笔试题,故记此文以备忘. bind和call以及apply一样,都是可以改变上下文的this指向的.不 ...
- MFC通过txt查找文件并进行复制-备忘
MFC基于对话框的Demo txt中每行一个23位的卡号. 文件夹中包含以卡号命名的图像文件.(fpt或者bmp文件) 要求遍历文件夹,找到txt中卡号所对应的图像文件,并复制出来. VC6.0写的. ...
- php 相关模块备忘
在安装php的时候,不管是编译安装: ./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc -- ...
- 『备忘』HttpWebRequest 在 POST 提交时, 标头(Headers)丢失原因
近来研究 HttpWebRequest —— 辅助类完成时,POST JSON数据 总会 丢失标头(Headers). HttpWebRequest POST JSON数据,分如下几步: > 将 ...
随机推荐
- bzoj 4484 [Jsoi2015]最小表示——bitset
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=4484 每个点上存一下它到每个点的连通性.用 bitset 的话空间就是 \( \frac{n ...
- JS给HTML5页面<Select></Select>绑定选中项
获取选中值: function setApprovalPersonName() { var name = $("#approvalPersion").find("opti ...
- jmeter --上传文件
jmeter-场景-上传文件-send-a-file 简要说就3点: POST请求 Request的参数都写在路径内,不写在表单里 上传的文件写在表单里 只要记住以上3点,也就避免了在设计脚本的时候走 ...
- dzzoffice协同办公平台与onlyoffice在线协作平台安装与部署
1.安装dzzoffice协同办公平台 DzzOffice是一套开源办公套件,适用于企业.团队搭建自己的 类似“Google企业应用套件”.“微软Office365”的企业协同办公平台. 官网地址:h ...
- android自定义tabhost,tabcontent用intent获得
地址:http://my.oschina.net/aowu/blog/36282 自己改的自定义tabhost组建,效果图如左.有更好的朋友可以相互交流一下,嘿嘿. 1.先上AndroidManife ...
- rainmeter 修正天气插件信息不准确 设置居住城市
rainmeter天气插件的原理是用爬虫抓取一个天气网页然后用自带的那一套正则表达式匹配出天气信息 在国外官网社区下载的插件的天气信息城市都会出现问题(因为插件作者又不知道你在哪),解决方法是在原基础 ...
- 6-3-1appium iOS
环境准备 brew install carthage npm i -g ios-deploy brew install libimobiledevice --HEAD brew install ide ...
- 接口测试maven管理
接口测试框架选择 界面化工具,针对不会编码的测试人员: 1.Jmeter性能测试工具,不具备完备的接口测试框架功能 2.Robotframerwork 3.PostMan 推荐框架: ResrAssu ...
- 深度优先搜索DFS(二)
总结下图里面的常用模板: DFS(u){ vis[u]=true; for(从u出发能到达的所有顶点v){ if(vis[v]==false){ DFS(v); } } } DFSTrave(G){ ...
- 利用百度翻译API,获取翻译结果
利用百度翻译API,获取翻译结果 translate.py #!/usr/bin/python #-*- coding:utf-8 -*- import sys reload(sys) sys.set ...