欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Java构建工具之Ant入门

程序员文章站 2022-05-28 09:42:41
...

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

http://ant.apache.org/

版本:apache-ant-1.8.4


1、输出信息

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



2、时间戳

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



3、使用properties文件

<property file="build.properties" />

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



4、定义变量

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

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



5、导入其他Build文件

<include file="included.xml"/>

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

......

<import file="imported.xml"/>

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



6、自定义Task

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"/>



7、创建文件夹

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



8、删除文件夹

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



9、移动文件夹

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



10、拷贝文件夹

<!-- 拷贝文件夹 -->
<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>



11、删除文件

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



12、拷贝文件

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



13、文件重命名

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



14、修改文件中的某个值

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



15、压缩文件

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



16、解压文件

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



17、移动文件

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



18、设置classpath

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



19、编译类

  
<!-- 编译类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>



20、运行类

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



21、打包jar

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



22、打包war

<!-- 打包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>



23、CVS相关

<!-- 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}" />



24、执行外部文件

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



25、SSH

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



26、SCP

<!-- SCP -->
<scp todir="root:[email protected]:/usr/local/tomcat/webapps/" trust="true">
	<fileset dir="dir" id="id">
	    <include name="include"/>
	    <exclude name="exclude"/>
	</fileset>
</scp>



27、文件同步

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



28、转换文件格式

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



29、发送邮件

<!-- 发送邮件 -->
<mail mailhost="smtp.myisp.com" mailport="1025" subject="Test build">
	<from address="[email protected]"/>
	<to address="[email protected]"/>
	<message>The {buildname} nightly build has completed</message>
	<fileset dir="dist">
	<includes name="**/*.zip"/>
	</fileset>
</mail>
 
相关标签: ant