自动部署工具ant

学习ant所做的笔记,根据官方网站所举事例

<?xml version="1.0" ?>

<project name="ant-project" default="print-dir">

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

<target name="print-dir">

<echo message="name: ${name} project: ${ant.project.name} "/>

</target>

</project>

运行结果如下:

[[email protected]_test apache-ant-1.9.7]# bin/ant -f /home/huang/test/build.xml

Buildfile: /home/huang/test/build.xml

print-dir:

[echo] name: jojo project: ant-project    -----》${ant.project.name},系统变量

BUILD SUCCESSFUL

Total time: 0 seconds

上例中用户设置了名为name的属性,这个属性设置后,在下文中可以通过 ${name}取得这两个属性值。

unzip参数:

[[email protected]_test test]# cat unzip.xml

<project name="unzip_name" default="init">

<property name="src.dir" value="/home/huang/test/src"/>

<property name="dest.dir" value="/home/huang/test/dest"/>

<target name="init" description="compress the Task">

<unzip src="${src.dir}/build.zip" dest="${dest.dir}" />

</target>

</project>

mkdir创建一个src目录:http://ant.apache.org/manual/Tasks/mkdir.html

[[email protected]_test test]# cat file.xml

<project name="create" default="number" basedir="/home/huang/test">

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

<target name="number">

<mkdir dir="${src.dir}"/>

</target>

</project>

运行结果:

[[email protected]_test apache-ant-1.9.7]# bin/ant -f /home/huang/test/file.xml

Buildfile: /home/huang/test/file.xml

number:

[mkdir] Created dir: /home/huang/test/src

BUILD SUCCESSFUL

Total time: 0 seconds

delete删除一个目录或者文件:http://ant.apache.org/manual/Tasks/delete.html

[[email protected]_test test]# cat file.xml

<project name="create" default="number" basedir="/home/huang/test">

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

<target name="number">

<delete dir="${src.dir}"/>

</target>

</project>

运行结果:

[[email protected]_test apache-ant-1.9.7]# bin/ant -f /home/huang/test/file.xml

Buildfile: /home/huang/test/file.xml

number:

[delete] Deleting directory /home/huang/test/src    ---》删除src目录及其目录下的所有文件

BUILD SUCCESSFUL

Total time: 0 seconds

删除目录中带有.bak结尾的文件

<delete>

<fileset dir="." includes="**/*.bak"/>   ----》删除当前目录下面到字目录中有.bak的文件

</delete>

copy复制一个文件:http://ant.apache.org/manual/Tasks/copy.html

[[email protected]_test test]# cat file.xml

<project name="create" default="number" basedir="/home/huang/test">

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

<target name="number">

<copy file="unzip.xml" tofile="unzip.xml_copy"/>       ----》复制一个单文件unzip.xml,unzip.xml_copy

</target>

</project>

运行结果:

[[email protected]_test apache-ant-1.9.7]# bin/ant -f /home/huang/test/file.xml

Buildfile: /home/huang/test/file.xml

number:

[copy] Copying 1 file to /home/huang/test

BUILD SUCCESSFUL

Total time: 0 seconds

<copy file="unzip.xml" todir="${src.dir}"/>   复制单文件到目录下

[[email protected]_test test]# ll src/

total 4

-rw-r--r-- 1 root root 293 Sep 19 14:53 unzip.xml

copy复制一个目录下的所有文件除了某特定的文件:http://ant.apache.org/manual/Tasks/copy.html

[[email protected]_test test]# cat file.xml

<project name="create" default="number" basedir="/home/huang/test">

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

<property name="dest.dir" value="dest"/>

<target name="number">

<mkdir dir="${dest.dir}"/>

<copy todir="${dest.dir}">

<fileset dir="${src.dir}" excludes="**/*.xml"/>    ----》excludes:排除某个特定文件

</copy>

</target>

</project>

运行如下:

[[email protected]_test apache-ant-1.9.7]$ bin/ant -f /home/huang/test/file.xml

Buildfile: /home/huang/test/file.xml

number:

[copy] Copying 1 file to /home/huang/test/dest

BUILD SUCCESSFUL

Total time: 0 seconds

copy将某目录下面的所有文件全部copy为.bak模式

[[email protected]_test test]$ cat file.xml

<project name="create" default="number" basedir="/home/huang/test">

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

<property name="dest.dir" value="dest"/>

<target name="number">

<copy todir="${dest.dir}">

<fileset dir="${src.dir}"/>

<globmapper from="*" to="*.bak"/>

</copy>

</target>

</project>

运行效果如下:

[[email protected]_test apache-ant-1.9.7]$ bin/ant -f /home/huang/test/file.xml

Buildfile: /home/huang/test/file.xml

number:

[copy] Copying 2 files to /home/huang/test/dest

[copy] Copied 1 empty directory to 1 empty directory under /home/huang/test/dest

BUILD SUCCESSFUL

Total time: 0 seconds

[[email protected]_test test]$ ll dest/

total 4

-rw-rw-r-- 1 huang huang   0 Sep 19 15:40 test.txt.bak

-rw-rw-r-- 1 huang huang 293 Sep 19 15:40 unzip.xml.bak

一个jar程序的编译运行过程:

<project name="HelloWorld" basedir="/home/huang/test/" default="main">

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

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

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

<property name="jar.dir"     value="${build.dir}/jar"/>

<property name="main-class"  value="oata.HelloWorld"/>

<target name="clean">

<delete dir="${build.dir}"/>

</target>

<target name="compile">

<mkdir dir="${classes.dir}"/>

<javac srcdir="${src.dir}" destdir="${classes.dir}"/>

</target>

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

<mkdir dir="${jar.dir}"/>

<jar destfile="${jar.dir}/${ant.project.name}.jar" basedir="${classes.dir}">

#######${ant.project.name}----->HelloWorld(<project name="HelloWorld")

<manifest>

<attribute name="Main-Class" value="${main-class}"/>

</manifest>

</jar>

</target>

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

<java jar="${jar.dir}/${ant.project.name}.jar" fork="true"/>

</target>

<target name="clean-build" depends="clean,jar"/>

<target name="main" depends="clean,run"/>

</project>

Now it‘s easier, just do a ant and you will get

Buildfile: build.xml

clean:

compile:

[mkdir] Created dir: C:\...\build\classes

[javac] Compiling 1 source file to C:\...\build\classes

jar:

[mkdir] Created dir: C:\...\build\jar

[jar] Building jar: C:\...\build\jar\HelloWorld.jar

run:

[java] Hello World

main:

BUILD SUCCESSFUL

时间: 2024-08-07 09:11:08

自动部署工具ant的相关文章

利用Jenkins自动部署工具间接构建kettle的调度平台

关于Jenkins的介绍我就不说了,自己百度,因为这个工具调用脚本只是他的功能的冰山一角,其他功能我也不能理解,因为不是那个领域.        下面我就介绍一下为什么我们需要一个调度平台,以及学习完jenkins后,能解决什么问题.然后在开始讲解安装部署,然后再讲一下怎么调用kettle作业(和处理作业依赖) 1.为什么我们需要调度平台?  2.答:可能大部分人对于kettle的调度还是停留在win的计划任务,linux的cron, 但是作业越来越多,作业之间相互依赖,(例如:A作业,b作业,

自动构建工具Ant的使用-笔记

第一:什么是Ant? Apache Ant是一个基于Java的生成工具.据最初的创始人James Duncan Davidson的介绍,这个工具的名称是another neat tool(另一个整洁的工具)的首字母的缩写. 第二:到哪儿去找ant工具,地址:http://ant.apache.org/bindownload.cgi 第三:配置环境变量:如下图: 第四:用命令行测试下: 如果出现上述界面则证明Ant配置成功 第五:Ant的作用是什么? 生成工具在软件开发中用来将源代码和其他的输入文

基于ant自动部署ear/war 文件到weblogic12c

本人最近学习使用jenkins+svn+ant 自动部署ear文件.所以特此记录一下如何通过ant 自动部署ear文件到weblogic. 通常我们可以通过weblogic直接发布application, 就是通过登陆weblogic web console通过上传ear/war 文件发布到服务器上面. 下面我们就通过ant 来实现类似upload ear file的功能. 这里假设ear文件已经就绪.重点说明如何通过ant 来部署ear到weblogic. weblogic.classpath

ant+svn+tomcat实现项目自动部署

因工作需要,研究并实现了 ant+svn+tomcat实现项目自动部署,其中参考了下面文章:http://www.cnblogs.com/taoweiji/p/3700915.html jar包需要eclipse的jar和svn的部分jar,已整理好,直接放入ant中lib下即可. 除ant外其他所需jar包 下载地址:http://files.cnblogs.com/files/haha12/%E9%99%A4ant%E5%A4%96%E5%85%B6%E4%BB%96%E6%89%80%E9

bboss自动代码生成工具使用指南

本文介绍bboss自动代码生成工具使用方法 工具在线浏览效果: http://gencode.bbossgroups.com 在介绍之前首先了解一下bboss自动代码生成工具能帮助我们做哪些事情. 通过自动代码生成框架,根据模板可以自动生成数据库表的增.删.改.分页查询.列表查询.国际化功能对应的java.jsp程序和配置文件,包括: 1.mvc控制器 2.业务组件 3.PO实体类 4.jsp文件 可以定制不同风格的界面模板,目前提供了一套bboss平台的基础ui风格和一套bboss普通ui风格

组建自动化工具Ant

组建自动化工具Ant Ant可以帮助我们自动化的完成项目的构建 下面是维基百科对Ant的介绍:http://zh.wikipedia.org/wiki/Apache_Ant Apache Ant,是一个将软件编译.测试.部署等步骤联系在一起加以自动化的一个工具,大多用于Java环境中的软件开发.由Apache软件基金会所提供.默认情况下,它的buildfile(XML文件)名为build.xml.每一个buildfile含有一个<project>和至少一个默认的<target>,这

kickstart自动部署centos

kickstart自动部署centos 工作中,我们有时候需要安装几十上百台服务器,这种情况下用u盘或者光驱逐台安装,太花时间与人力,显然不现实,所以应该选择自动化部署操作系统的方式,自动化部署操作系统的工具有很多,这里我用的是kickstart这个工具. kickstart原理: kickStart是一种无人职守安装方式.KickStart的工作原理是通过记录典型的安装过程中所需人工干预填写的各种参数,并生成一个名为ks.cfg的文件:在其后的安装过程中(不只局限于生成KickStart安装文

Day11.开发脚本自动部署及监控

1.编写脚本自动部署反向代理.web.nfs:要求:I.部署nginx反向代理三个web服务,调度算法使用加权轮询: II.所有web服务使用共享存储nfs,保证所有web都对其有读写权限,保证数据一致性: 2.编写监控脚本,监控nginx,nfs存活状态,内存使用率检测,异常则发送报警邮件 准备发送邮件的工具: 监控脚本的编写: 继续编写刚才的脚本编写,加入邮件功能 3.编写计划任务,定时运行监控脚本,完成监控操作

Powershell 的自动部署

 工作中重复性的版本移植,一天上线10几次,让我痛不欲生,频繁的操作也可能出现疲劳性失误,导致严重的生产故障.于是乎,闲暇时间,我开始研究使用powershell自动部署程序到Linux服务器. 脚本中涉及到以下工具: 1.Wincp:借助其自身的命令行模式完成程序部署 2.powershell的ssh-session模块,通过加载该模块连接到Linux服务器,执行相关shell命令 3..net 开始上代码 #Public environment configure $script:lin