Ant学习例子1(用ant打jar包,并运行HelloWorld)


build.properties(如果属性很多,可以放在属性文件中,然后再build.xml中引用)

execute.class = org.test.ant.HelloWorld
jar.name =world.jar

build.xml

<?xml version="1.0" encoding="UTF-8"?>


<project default="execute">
    <!--使用属性定义路径时,一定使用location,而不要使用value-->
    <property name="build.dir" location="build"></property><!--name用${name}来引用,id用refid="id"来引用-->

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

    <property name="build.src" location="${build.dir}/src"></property>

    <property name="build.classes" location="${build.dir}/classes"></property>
    <property name="build.dist" location="${build.dir}/dist"></property>
    <!--
    <property name="execute.class" value="org.test.ant.HelloWorld"></property>
    <property name="jar.name" value="hello.jar"></property>
    -->
    <!--如果属性过多,可以放在外部文件中定义,但路径location不建议放在外部文件中,引用外部properties属性文件,如下-->    
    <property file="build.properties"></property>
    <!--文件集dir="."表当前目录,即build.xml所在的目录。includes="**/*.java" 表示包含当前目录及子目录下,所有以.java结尾的文件,id可以被引用-->
    <fileset id="src.path" dir="." includes="**/*.java"></fileset>

   

   <!--初始化,新建文件夹,直接写dir目录的写法-->

    <target name="init0">

        <delete dir="build"></delete>
        <mkdir dir="build"/>
        <mkdir dir="build/src"/>
        <mkdir dir="build/classes"/>
        <mkdir dir="build/dist"/>
    </target>
   <!--初始化,新建文件夹,通过${name}引用dir目录的写法-->

    <target name="init">

        <delete dir="${build.dir}"></delete>
        <mkdir dir="${build.dir}"/>
        <mkdir dir="${build.src}"/>
        <mkdir dir="${build.classes}"/>
        <mkdir dir="${build.dist}"/>
    </target>
    
  
 
    <target name="copySrc" depends="init">
        <copy todir="${build.src}">
            <fileset refid="src.path"></fileset><!--拷贝文件集,用refid引用id为src.path的文件集-->
        </copy>
    </target>
    
    <target name="complie" depends="init">
        <javac destdir="${build.classes}" srcdir="${src.dir}" ></javac>
    </target>
    
    <target name="jar" depends="complie">
        <jar destfile="build/dist/hello.jar" basedir="build/classes">
            <manifest>
                <attribute name="Main-Class" value="org.test.ant.HelloWorld"/>
                <attribute name="Build-By" value="Sawliet"/>
            </manifest>
        </jar>
    </target>
    
    <target name="execute" depends="jar">
        <echo>基于类路径的classname来完成执行</echo>
        <java classname="${execute.class}" classpath="${build.classes}">
            <arg value="jack"/>
            <arg value="tom"/>
            <arg value="steven"/>
        </java>
        
        <echo>基于jar文件执行</echo>
        <java jar="${build.dist}/${jar.name}" fork="true"><!--使用jdk自带的编译,不使用ant编译-->
            <arg value="jack"/>
            <arg value="tom"/>
            <arg value="steven"/>
        </java>
    </target>
        
    
    
    
    <target name="test">
    
    <property environment="env"></property>
    <echo>${env.TOMCAT_HOME}</echo>
    <echo>${env.OS}</echo>
    <echo>${env.JAVA_HOME}</echo>
    
    </target>
    
</project>


HelloWorld.java

package org.test.ant;

public class HelloWorld {

    public static void main(String[] args) {

        for(String arg:args)
        {
            System.out.println("hello--"+arg);
        }
    }

}


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值