- 浏览: 508496 次
- 性别:
- 来自: 长沙
文章分类
最新评论
-
wang1352083:
正在搭建tomcat源码.一会儿参照楼主经验搭建spring源 ...
Eclipse中阅读开源项目代码 -
w123456789zzzz:
谢谢你,问题解决了,楼主万岁!!
eclipse中如何安装插件 -
xiaoLee:
...
软件性能测试论文草稿 -
铃儿响叮当:
...
使用firefox调试js -
gogopengyou:
很细心啊
eclipse中如何安装插件
背景:最近个人附带的负责维护测试服务环境,每天早上的过程大致如下:
远程登录到主机438——进入构建目录——删除Cloud和dist两个文件夹——进入ant目录——键入build开始构建(由于系统很大一般要12分钟)——构建完成之后打开SSH File Transfer将新构建的连个文件夹上传到Rhel服务器——在Rhel中启动cloud和dc。
刚开始还好,搞得天数多了难免不生厌,于是想如何使上述这一过程做到最大程度的自动化呢?
想到的一种实现方式:
a、将build做成随机启动(因服务器一般都不关闭的,因此考虑做成定时的)(写.cmd脚本)
b、将删除与上传工的作放进构建脚本中(修改ant脚本)
于是开始行动, 先去系统地学习一下ant的使用... ...
————————Ant学习之简单Demo——————
一、基本概念
1、什么是Ant
2、什么是构建
3、使用Ant的优势(相对于make而言)
.跨平台
.使用简单
.语法清晰
.功能强大
二、Ant安装
1、http://ant.apache.org/bindownload.cgi下载Ant,当前最新版本为1.8.1
2、 与配置Jdk的环境类似,新建一个变量:ANT_HOME=ant所在目录
设置Path为: %ANT_HOME%\bin
注意:如果要让Ant能够支持Junit,需要将JUnit的junit.jar放置在Ant的lib目录并记得修改ClassPath中原有关Junit的设定。
3、 进入CMD界面,键入ant -v
若出现有关版本的提示则表明你的安装成功了。
好了,让我们开始进入Ant的编写... ...
三、Ant简单Demo
目的: 使用Ant来达成目的,完成一件事情的实例
.编写一个程序
.编译它们
.把它们打成jar包
.设定它们的存放位置
.运行它们
1、首先写一个HelloWorld.java
2、 撰写构建脚本build.xml
3、解读脚本
把你想做的每一件事情写一个target,depends是它所依赖的target,在执行当前的target之前必须先执行depends中所定义的target。
注意:上述脚本中return这个target是一个特殊的target,相当于还原
4、执行
键入ant,你会发现你所定义的一个个任务都已经完成。有时我们可能并不想执行程序,只是想执行其中的某些步骤,那么你可以采取如下的做法:
ant targetName 即可,如我只执行clean就键入 ant clean
^_^ ^_^ Demo至此完工,休息一下,继续后面的学习... ...
途中遇到的问题:
1、 ant warning:'includeantruntime' was not set,defaulting to build.sysclasspath=last;set to false for repeatable builds
解决方案:在javac标签中加入属性includeantruntime="false" 便可以了
—————————Ant学习之Ant整合————————————
背景:我们目前的项目一共分成了8个模块,共13个小工程,不同的小组负责不同的模块或者工程,为了测试,各个小组都是自己写的build.xml,而我作为测试维护人员负责把这些模块组合到一块使用。写一个build.xml,这时我就惆怅了:
1、重新写一个build.xml?——这貌似很麻烦
2、 尽量利用同事已经写好的build.xml,减少自己的工作
也正因为决定采取第二种方式,现在开始学习Ant整合
———————————————————————————————————————————————————————————
假设只有3个模块,每个小组负责一个模块,他们分别有一个src和写好的build.xml。此时你拿到他们的src,你需要做的是建立三个文件夹src1,src2,src3并分别把他们的src和build.xml合并写一个新的build.xml。
——————————Ant进阶学习——————————
如你所见,上述做法还是存在很大的问题,重点体现在重复性的东西比较多,每次修改一个目录导致要修改多处,是否能让工作做得更好一点呢?
引入两个东西:
1、property
2、xml include
这两个东西都有一个功能,就是能把build.xml中</property>分离出来共同使用。
差异:
property的特点是维护简单,只需要简单的键值对
xml include的特点是不但可以提取出属性,连target也可以提取
——————————————————————————————————————
继续上述例子,如我们想把src1 src2 src3这三个属性从xml中提出来,可以新建一个all.properties,里面的内容如下:
src1=文件位置...
src2=文件位置...
src3=文件位置
然后你的build.xml可以这样写,别人只需要修改你的配置文件all.properties而不需修改你的build.xml:
有时候你想给每个小组的build.xml中添加几个target,一种做法是每个build.xml中写入target,但是有一种更好的做法:
你可以写一个include.xml文件,内容如下:
然后你可以按如下方式更改你的每个build.xml,在每个build.xml中写入:
如下:
远程登录到主机438——进入构建目录——删除Cloud和dist两个文件夹——进入ant目录——键入build开始构建(由于系统很大一般要12分钟)——构建完成之后打开SSH File Transfer将新构建的连个文件夹上传到Rhel服务器——在Rhel中启动cloud和dc。
刚开始还好,搞得天数多了难免不生厌,于是想如何使上述这一过程做到最大程度的自动化呢?
想到的一种实现方式:
a、将build做成随机启动(因服务器一般都不关闭的,因此考虑做成定时的)(写.cmd脚本)
b、将删除与上传工的作放进构建脚本中(修改ant脚本)
于是开始行动, 先去系统地学习一下ant的使用... ...
————————Ant学习之简单Demo——————
一、基本概念
1、什么是Ant
2、什么是构建
3、使用Ant的优势(相对于make而言)
.跨平台
.使用简单
.语法清晰
.功能强大
二、Ant安装
1、http://ant.apache.org/bindownload.cgi下载Ant,当前最新版本为1.8.1
2、 与配置Jdk的环境类似,新建一个变量:ANT_HOME=ant所在目录
设置Path为: %ANT_HOME%\bin
注意:如果要让Ant能够支持Junit,需要将JUnit的junit.jar放置在Ant的lib目录并记得修改ClassPath中原有关Junit的设定。
3、 进入CMD界面,键入ant -v
若出现有关版本的提示则表明你的安装成功了。
好了,让我们开始进入Ant的编写... ...
三、Ant简单Demo
目的: 使用Ant来达成目的,完成一件事情的实例
.编写一个程序
.编译它们
.把它们打成jar包
.设定它们的存放位置
.运行它们
1、首先写一个HelloWorld.java
package test.ant; public class HelloWorld { public static void main(String[] args) { System.out.println("Welcome to The Ant World"); } }
2、 撰写构建脚本build.xml
<?xml version="1.0" encoding="UTF-8"?> <project name="HelloWorld" default="run" basedir="."> <property name="src" value="src"/> <property name="dest" value="classes"/> <property name="hello_jar" value="hello1.jar"/> <target name="init"> <mkdir dir="${dest}"/> </target> <target name="compile" depends="init"> <javac srcdir="${src}" destdir="${dest}" includeantruntime="false"/> </target> <target name="build" depends="compile"> <jar jarfile="${hello_jar}" basedir="${dest}"/> </target> <target name="run" depends="build"> <java classname="test.ant.HelloWorld" classpath="${hello_jar}"/> </target> <target name="clean"> <delete dir="${dest}"/> <delete file="${hello_jar}"/> </target> <target name="return" depends="clean,run"> <ant target="clean"/> <ant target="run"/> </target> </project>
3、解读脚本
把你想做的每一件事情写一个target,depends是它所依赖的target,在执行当前的target之前必须先执行depends中所定义的target。
注意:上述脚本中return这个target是一个特殊的target,相当于还原
4、执行
键入ant,你会发现你所定义的一个个任务都已经完成。有时我们可能并不想执行程序,只是想执行其中的某些步骤,那么你可以采取如下的做法:
ant targetName 即可,如我只执行clean就键入 ant clean
^_^ ^_^ Demo至此完工,休息一下,继续后面的学习... ...
途中遇到的问题:
1、 ant warning:'includeantruntime' was not set,defaulting to build.sysclasspath=last;set to false for repeatable builds
解决方案:在javac标签中加入属性includeantruntime="false" 便可以了
—————————Ant学习之Ant整合————————————
背景:我们目前的项目一共分成了8个模块,共13个小工程,不同的小组负责不同的模块或者工程,为了测试,各个小组都是自己写的build.xml,而我作为测试维护人员负责把这些模块组合到一块使用。写一个build.xml,这时我就惆怅了:
1、重新写一个build.xml?——这貌似很麻烦
2、 尽量利用同事已经写好的build.xml,减少自己的工作
也正因为决定采取第二种方式,现在开始学习Ant整合
———————————————————————————————————————————————————————————
假设只有3个模块,每个小组负责一个模块,他们分别有一个src和写好的build.xml。此时你拿到他们的src,你需要做的是建立三个文件夹src1,src2,src3并分别把他们的src和build.xml合并写一个新的build.xml。
<?xml version="1.0" encoding="UTF-8"?> <project name="main" default="build" basedir="."> <property name="bin" value="${basedir}\bin"/> <property name="src1" value="${basedir}\src1"/> <property name="src2" value="${basedir}\src2"/> <property name="src3" value="${basedir}\src3"/> <target name="init"> <mkdir dir="${bin}"/> </target> <target name="run"> <ant dir="${src1}" target="run"/> <ant dir="${src2}" target="run"/> <ant dir="${src3}" target="run"/> </target> <target name="clean"> <ant dir="${src1}" target="run"/> <ant dir="${src2}" target="run"/> <ant dir="${src3}" target="run"/> </target> <target name="build" depends="init"> <copy todir="${bin}"> <fileset dir="${src1}"> <include name="*.jar"/> </fileset> <fileset dir="${src2}"> <include name="*.jar"/> </fileset> <fileset dir="${src3}"> <include name="*.jar"/> </fileset> </copy> </target> <target name="rebuild" depends="build,clean"> <ant target="clean"/> <ant target="build"/> </target> </project>OK,你的任务完成了!
——————————Ant进阶学习——————————
如你所见,上述做法还是存在很大的问题,重点体现在重复性的东西比较多,每次修改一个目录导致要修改多处,是否能让工作做得更好一点呢?
引入两个东西:
1、property
2、xml include
这两个东西都有一个功能,就是能把build.xml中</property>分离出来共同使用。
差异:
property的特点是维护简单,只需要简单的键值对
xml include的特点是不但可以提取出属性,连target也可以提取
——————————————————————————————————————
继续上述例子,如我们想把src1 src2 src3这三个属性从xml中提出来,可以新建一个all.properties,里面的内容如下:
src1=文件位置...
src2=文件位置...
src3=文件位置
然后你的build.xml可以这样写,别人只需要修改你的配置文件all.properties而不需修改你的build.xml:
<?xml version="1.0" encoding="UTF-8"?> <project name="main" default="build" basedir="."> <property name="bin" value="${basedir}\bin"/> <property file="all.properties"/> <target name="init"> <mkdir dir="${bin}"/> </target> <target name="run"> <ant dir="${src1}" target="run"/> <ant dir="${src2}" target="run"/> <ant dir="${src3}" target="run"/> </target> <target name="clean"> <ant dir="${src1}" target="run"/> <ant dir="${src2}" target="run"/> <ant dir="${src3}" target="run"/> </target> <target name="build" depends="init"> <copy todir="${bin}"> <fileset dir="${src1}"> <include name="*.jar"/> </fileset> <fileset dir="${src2}"> <include name="*.jar"/> </fileset> <fileset dir="${src3}"> <include name="*.jar"/> </fileset> </copy> </target> <target name="rebuild" depends="build,clean"> <ant target="clean"/> <ant target="build"/> </target> </project>
有时候你想给每个小组的build.xml中添加几个target,一种做法是每个build.xml中写入target,但是有一种更好的做法:
你可以写一个include.xml文件,内容如下:
<?xml version="1.0" encoding="UTF-8"?> <property name="src" value="src"/> <property name="dest" value="classes"/> <target name="test"> <ant target="run"/> </target> </xml>
然后你可以按如下方式更改你的每个build.xml,在每个build.xml中写入:
<!-- include a xml file, it can be common property, can be also a target --> <!DOCTYPE project[ <!ENTITY share-variable SYSTEM "file:../include.xml"> ]>然后再在build.xml中的<project></project>之间写入 &share-variable;即可
如下:
<?xml version="1.0" encoding="UTF-8"?> <!-- include a xml file, it can be common property, can be also a target --> <!DOCTYPE project[ <!ENTITY share-variable SYSTEM "file:../include.xml"> ]> <project name="HelloWorld" default="run" basedir="."> <!--use the include --> &share-variable; <!--define the property --> <!-- via include <property name="src" value="src"/> <property name="dest" value="classes"/> --> <property name="hello_jar" value="hello1.jar"/> <!--define op --> <target name="init"> <mkdir dir="${dest}"/> </target> <target name="compile" depends="init"> <javac srcdir="${src}" destdir="${dest}" includeantruntime="false"/> </target> <target name="build" depends="compile"> <jar jarfile="${hello_jar}" basedir="${dest}"/> </target> <target name="run" depends="build"> <java classname="test.ant.HelloWorld" classpath="${hello_jar}"/> </target> <target name="clean"> <delete dir="${dest}"/> <delete file="${hello_jar}"/> </target> <target name="return" depends="clean,run"> <ant target="clean"/> <ant target="run"/> </target> </project>
发表评论
-
性能问题
2013-09-04 20:13 0<SERVICE CLASS=" ... -
ant中使用svn检出代码
2011-05-14 21:33 2955[size=large][size=large][size=l ... -
Ant与批处理(win环境)学习3
2011-04-10 23:48 1210此篇主要讲实践,大多数情况下是直接贴的代码了 ... -
VNC之代理
2011-03-27 22:48 2771[size=large] 背景:使用VNC客户端去连接DC上 ... -
1号~15号工作日志
2011-01-16 22:23 8841、 Flex的includeInLayout属 ... -
JAVA异常处理
2011-01-11 22:51 694在je上看到一篇有关异常处理的文章,觉得还不错... . ... -
Java配置项
2011-01-11 20:44 900背景:项目中有许多可选参数,这时如果采取硬编码的方式将非 ... -
offLineMap2工作日记之getBoolean
2011-01-06 23:25 7901、如字段不是get**开头的boolean 如: boole ... -
开发常用小工具集
2011-01-06 22:26 2013毕业也有半年了,我有幸能加入一家知名IT公司并从事时下最 ... -
Eclipse中阅读开源项目代码
2010-12-25 22:57 2713[size=large] 背景:由于最近较为系统地学习了 ... -
Eclipse调试深入
2010-12-25 18:59 1316背景:我个人的调 ... -
Java打包总结
2010-12-19 22:35 1406背景:最近下载了一 ... -
Ant与批处理(win环境)学习笔记(2)
2010-12-19 22:01 1224在《Ant与批处理(win环境)学习笔记》中学习了Ant的一些 ... -
JDK工具学习
2010-12-18 22:14 1025[size=large] 起因:在 ... -
Eclipse插件安装总结
2010-12-18 12:29 1202大学时一直使用的 ... -
使用Ant和Maven构建时出现OOM异常
2010-12-14 23:14 1755今日更新测试环境时报OOM错误(工程中使用了Ant和Ma ... -
JAVA技术见识集
2010-12-12 09:34 869[size=large] 将网上看到的一些适用于指定场景的 ... -
Eclipse异常集
2010-12-08 19:52 22861、 Eclipse异常说An internal Error ... -
将批处理文件注册成服务
2010-11-15 19:49 3532前两天完成了将java程序注册成win服务,如今本人有一 ... -
将java程序做成windows系统服务
2010-11-11 19:42 2303近日一直在忙于Rhel( ...
相关推荐
NULL 博文链接:https://sunshineyao.iteye.com/blog/996480
然而,批处理脚本的缺点在于它的功能相对有限,不适合复杂的跨平台任务,且与现代开发环境的集成不如Ant等专业构建工具。 将Ant和批处理脚本结合使用,可以在Windows环境中实现更强大的自动化流程。例如,Ant可以...
利用ant进行批处理打包,一键打包,因项目不同,我的批处理和大家的肯定不同,大家可以借鉴、参考。
标题"unity3d android 使用ant打包批处理"指的是使用Ant工具进行Unity3D Android项目的批量打包流程。这个流程旨在提高效率,尤其是在持续集成或频繁发布更新时,可以避免手动操作的繁琐和错误。 首先,你需要确保...
本篇将深入探讨如何利用批处理脚本(Batch Script,通常以.bat为扩展名)来实现Ant的部分功能,以及这种实现方式的优势与应用场景。 首先,Ant的核心在于XML格式的构建文件build.xml,它定义了构建过程中的任务和目标...
本文将深入探讨Ant如何实现批处理Unicode转码,以及这一过程中的关键知识点。 首先,我们需要理解Unicode编码的重要性。Unicode是一个国际标准,旨在统一世界上所有字符的编码,包括各种语言、符号和特殊字符。在...
### ant学习笔记:深入了解ant构建工具 #### 引言 `ant`,作为一款源自动网络的学习笔记,主要探讨了Apache Ant这一强大的构建工具。Apache Ant是一款开源的、跨平台的构建工具,专为Java应用程序设计,旨在简化并...
Ant 1.9.1是Ant的一个版本,学习笔记通常记录了使用该工具的基本操作和配置方法。 ### Ant的下载和安装 要使用Ant,首先需要下载并安装。在Windows系统中,通常需要配置环境变量以便于命令行中使用Ant命令。ANT_...
在"Ant打包编译部署工具学习笔记2"中,我们可以预期博主分享了关于如何利用Ant进行更复杂的构建操作,例如集成测试、优化和打包。这可能包括如何配置build.xml文件,添加自定义任务,以及如何处理依赖关系。由于没有...
总的来说,这个“ant个人学习笔记和简单示例”应该能帮助你掌握Ant的基本用法,理解构建过程的自动化,以及如何编写和维护自己的构建文件。通过学习和实践其中的示例,你将能够熟练地运用Ant来构建和管理Java项目,...
### Jenkins+SVN+Ant持续集成环境配置笔记 #### 一、引言 随着软件开发项目的日益复杂化,持续集成(Continuous Integration, CI)已成为现代软件工程中的一个重要组成部分。通过持续集成,团队能够频繁地集成代码...
根据提供的文件信息,这里将深入解析“ant学习笔记:一个简单的java编译部署实例”,涵盖标题、描述、标签以及部分内容中提及的关键知识点。 ### Apache Ant简介 Apache Ant是一款开源的Java环境下的自动化构建...
《Ant构建工具学习指南》 Ant,作为Java领域的一个强大构建工具,它的主要作用在于将复杂的项目构建过程规范化、自动化,使得开发者能够更专注于代码的编写而非构建流程。本文将深入探讨Ant的基本概念、安装配置、...
- 在Windows上设置Ant通常涉及解压这个ZIP文件,设置ANT_HOME环境变量,并将bin目录添加到PATH环境变量中。 4. **使用Ant** - 用户可以通过命令行工具运行Ant,例如使用"ant clean compile"命令来清理并编译项目...
### ant的学习笔记知识点详解 #### 一、Ant的作用与特性 Ant是一款强大的自动化构建工具,主要应用于Java项目,能够高效地处理项目的编译、打包、测试等任务。它采用XML格式编写构建脚本,这使得Ant具有良好的跨...
首先,Eclipse与SVN的集成是持续集成环境搭建的关键第一步。通过Eclipse提交代码到SVN,确保所有开发人员的代码更改都存储在同一个集中式仓库中,便于管理。在Eclipse中集成SVN通常需要借助于外部插件,比如...
Apache Ant是一种广泛使用的Java构建工具,它以XML为基础来描述构建过程,使得构建脚本具有良好...在实际工作中,Ant通常与版本控制系统(如Git)、持续集成工具(如Jenkins)等配合使用,构建更复杂的自动化构建流程。
**Ant学习笔记** Ant是一个基于Java的构建工具,它的全称是Another Neat Tool,主要应用于Java项目的构建。Ant的设计理念是通过XML配置文件来定义构建过程,而非依赖于特定平台的shell命令。每个构建任务是由实现了...
XML(eXtensible Markup Language)是一种用于标记数据的语言,广泛应用于数据交换、配置文件、文档存储等场景。...在实际开发中,XML与批处理的结合广泛应用于持续集成、自动化测试、数据迁移等多个领域。