cixiren 发表于 2017-1-4 06:05:20

Apache Ant Basic Demo

  工程目录如下图所示:

  build.xml
  


<?xml version="1.0" encoding="UTF-8"?>
<project default="execute">
<property name="build.dir" location="build">
</property>
<!--使用属性定义相应的路径时,一定使用location而不要使用value-->
<property name="build.classes" location="${build.dir}\classes">
</property>
<property name="build.src" location="${build.dir}/src">
</property>
<property name="build.lib.dir" location="${build.dir}/dist">
</property>
<!--
<property name="execute.class" value="org.fool.ant.test.HelloWorld"/>
<property name="jar.name" value="ant.jar"></property>
-->
<!--
如果属性太多,可以将属性放置到一个外部文件中定义,之后进行引用
特别注意:如果是路径不建议在外部文件中定义,因为此时就不会设置location的值
-->
<property file="build.properties">
</property>
<!--把环境变量中的参数到处到env这个变量中-->
<property environment="env">
</property>
<target name="test">
<echo>${ant.home}</echo>
<echo>${ant.version}</echo>
<echo>${env.CATALINA_HOME}</echo>
<echo>${env.OS}</echo>
</target>
<!--
fileset可以设定一组文件集来进行操作,dir指明文件集要进行选择的路径,
通过id可以指定这个文件的名称,在使用的时候进行直接的引入
include和exclude可以设定包含返回和排除范围**/*.*所有目录中的所有文件
Ant风格资源地址支持3种匹配符
?匹配文件名中的一个字符
*匹配文件名中的任意个字符
**匹配多层路径
-->
<fileset id="src.path" dir="src">
<include name="**/*.*" />
<exclude name="**/Test*.java" />
</fileset>
<target name="init">
<delete dir="${build.dir}">
</delete>
<mkdir dir="${build.dir}" />
<mkdir dir="${build.src}" />
<mkdir dir="${build.classes}" />
<mkdir dir="${build.lib.dir}" />
</target>
<target name="copySrc" depends="init">
<copy todir="${build.src}">
<fileset refid="src.path">
</fileset>
</copy>
</target>
<target name="compile" depends="init">
<javac destdir="${build.classes}" srcdir="src" includeantruntime="on">
</javac>
</target>
<target name="jar" depends="compile">
<jar destfile="${build.lib.dir}/ant.jar" basedir="${build.classes}">
<manifest>
<attribute name="Main-Class" value="${execute.class}" />
<attribute name="Build-By" value="Jason" />
</manifest>
</jar>
</target>
<target name="execute" depends="jar, copySrc">
<echo>基于类路径的classname来完成执行</echo>
<java classname="${execute.class}" classpath="${build.classes}">
<arg value="Jordan" />
<arg value="Bryant" />
</java>
<echo>基于jar文件执行</echo>
<java jar="${build.lib.dir}/${jar.name}" fork="true">
<arg value="Jordan" />
<arg value="Bryant" />
</java>
</target>
</project>
  build.properties
  


execute.class = org.fool.ant.test.HelloWorld
jar.name = ant.jar
   HelloWorld.java
  


package org.fool.ant.test;
public class HelloWorld
{
public static void main(String[] args)
{
for (String arg : args)
{
System.out.println("Hello " + arg);
}
}
}

 
页: [1]
查看完整版本: Apache Ant Basic Demo