Java构建工具之Ant

本文介绍Ant,一种基于Java的构建工具,其功能包括输出信息、时间戳、使用properties文件、定义变量、导入其他Build文件、自定义Task、创建与删除文件夹、拷贝与移动文件、文件重命名、修改文件内容、压缩与解压文件、编译与运行类、打包jar与war文件等。同时展示了如何设置classpath,进行CVS操作,执行外部文件以及SSH、SCP和文件同步等高级应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

[size=medium]Ant是一种基于Java的build工具。理论上来说,它有些类似于(Unix)C中的make ,但没有make的缺陷。

[url=http://ant.apache.org/]http://ant.apache.org/[/url]

版本:apache-ant-1.8.4[/size]

[b]1、输出信息[/b]

<!-- 输出信息 -->
<echo>ANT_HOME:${ant.home}</echo>
<echo message="ANT_VERSION:${ant.version}"/>


[b]2、时间戳 [/b]

<!-- 时间戳 -->
<tstamp />
<echo message="${DSTAMP}"/>


[b]3、使用properties文件[/b]

<property file="build.properties" />

<!-- 使用build.properties -->
<echo message="${test.key1}"/>


[b]4、定义变量[/b]

<!-- property定义 -->
<property name="test.property1" value="propertyA"/>

<echo message="${test.property1}"/>


[b]5、导入其他Build文件[/b]

<include file="included.xml"/>

<!-- included.xml -->
<echo message="${included}"/>

......

<import file="imported.xml"/>

<!-- imported.xml -->
<echo message="${imported}"/>


[b]6、自定义Task[/b]

package com.rensanning.ant;

import org.apache.tools.ant.BuildException;
import org.apache.tools.ant.Task;

public class MyTask extends Task {

private String name;

private String country;

@Override
public void execute() throws BuildException {
System.out.println(name + " from " + country);
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public String getCountry() {
return country;
}

public void setCountry(String country) {
this.country = country;
}

}


<taskdef name="mt" classname="com.rensanning.ant.MyTask" classpath="bin"/>

<!-- 自定义Task -->
<mt name="rensanning" country="china"/>


[b]7、创建文件夹[/b]

<!-- 创建文件夹 -->
<mkdir dir="C:\ant\test11\10" />
<mkdir dir="C:\ant\test11\11" />


[b]8、删除文件夹[/b]

<!-- 删除文件夹 -->
<delete dir="C:\ant\test11\11" />


[b]9、移动文件夹[/b]

<!-- 移动文件夹 -->
<mkdir dir="C:\ant\folder\move" />
<move todir="C:\ant\folder\move">
<fileset dir="test/folder/move"/>
</move>


[b]10、拷贝文件夹[/b]

<!-- 拷贝文件夹 -->
<mkdir dir="C:\ant\folder\copy" />
<copy todir="C:\ant\folder\copy">
<fileset dir="test/folder/copy">
<include name="**/*.java" />
<exclude name="**/*Test.java" />
</fileset>
</copy>


[b]11、删除文件[/b]

<!-- 删除文件 -->
<delete file="test/file/delete/deletefile.txt" />


[b]12、拷贝文件[/b]

<!-- 拷贝文件 -->
<mkdir dir="C:\ant\file\copy" />
<copy todir="C:\ant\file\copy">
<fileset dir="">
<include name="**/*.java" />
<exclude name="**/*.class" />
</fileset>
</copy>


[b]13、文件重命名[/b]

<!-- 文件重命名 -->
<move file="test/file/copy/C2.java" tofile="C:\ant\file\copy\RC2.java"/>


[b]14、修改文件中的某个值[/b]

<!-- 修改文件中的某个值 -->
<replace file="C:\ant\file\copy\RC2.java" token="args" value="param"/>


[b]15、压缩文件[/b]

<!-- 压缩文件 -->
<mkdir dir="C:\ant\file\zip" />
<zip destfile="C:\ant\file\zip\manual.zip"
basedir="test/folder"
includes="**/*.java"
excludes="**/*Test.java"/>


[b]16、解压文件[/b]

<!-- 解压文件 -->
<mkdir dir="C:\ant\file\unzip" />
<unzip src="C:\ant\file\zip\manual.zip" dest="C:\ant\file\unzip"/>


[b]17、移动文件[/b]

<!-- 移动文件 -->
<mkdir dir="C:\ant\file\move" />
<move file="test/file/move/movefile.txt" todir="C:\ant\file\move"/>


[b]18、设置classpath[/b]

<!-- 设置classpath -->
<path id="cp">
<pathelement path="${java.class.path}"/>
<fileset dir="./lib">
<include name="**/*.jar"/>
</fileset>
</path>


[b]19、编译类[/b]

<!-- 编译类javac -->
<javac destdir="./bin"
encoding="UTF-8"
deprecation="on"
debug="off"
fork="true"
memoryMaximumSize="256m">
<src path="src"/>
<src path="src2"/>
<classpath refid="cp" />
</javac>


[b]20、运行类[/b]

<!-- 运行类java -->
<java classname="com.rensanning.ant.T" classpath="bin"/>


[b]21、打包jar[/b]

<!-- 打包jar -->
<mkdir dir="C:\ant\jar" />
<jar jarfile="C:\ant\jar\test.jar">
<fileset dir="./bin">
<include name="**/*" />
</fileset>
</jar>


[b]22、打包war [/b]

<!-- 打包war -->
<mkdir dir="C:\ant\war" />
<war destfile="C:\ant\war\myapp.war" webxml="test/war/web.xml">
<fileset dir="test/war/html"/>
<fileset dir="test/war/jsp"/>
<lib dir="./lib">
<exclude name="servlet-api.jar"/>
</lib>
<classes dir="./bin"/>
<zipfileset dir="test/war/images" prefix="images"/>
</war>


[b]23、CVS相关[/b]

<!-- CVS相关 -->
<cvspass cvsroot="${cvsroot}" password="${cvs.password}" passfile="${cvs.passfile}"/>
<cvs cvsroot="${cvsroot}" command="checkout" cvsrsh="ssh" package="myproject" dest="${basedir}" passfile="${cvs.passfile}"/>

<cvs cvsRoot=":pserver:${cvs.user}:${cvs.password}@${cvs.server}:${cvs.reppath}"
package="${cvs.module}"
tag="${tag60}"
dest="${checkoutdir}" />


[b]24、执行外部文件 [/b]

<!-- 执行外部文件 -->
<exec executable="cmd">
<arg value="/c"/>
<arg value="ant.bat"/>
<arg value="-p"/>
</exec>


[b]25、SSH [/b]

<!-- SSH -->
<sshexec host="" username="" password="" trust="true" command=""/>


[b]26、SCP [/b]

<!-- SCP -->
<scp todir="root:123456@192.168.0.2:/usr/local/tomcat/webapps/" trust="true">
<fileset dir="dir" id="id">
<include name="include"/>
<exclude name="exclude"/>
</fileset>
</scp>


[b]27、文件同步[/b]

<!-- 文件同步 -->
<sync todir="site">
<fileset dir="generated-site"/>
</sync>


[b]28、转换文件格式[/b]

<!-- 转换文件格式 -->
<native2ascii encoding="EUCJIS" src="srcdir" dest="srcdir" includes="**/*.eucjis" ext=".java"/>


[b]29、发送邮件[/b]

<!-- 发送邮件 -->
<mail mailhost="smtp.myisp.com" mailport="1025" subject="Test build">
<from address="me@myisp.com"/>
<to address="all@xyz.com"/>
<message>The {buildname} nightly build has completed</message>
<fileset dir="dist">
<includes name="**/*.zip"/>
</fileset>
</mail>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值