zoukankan      html  css  js  c++  java
  • Ant学习---第四节:Ant属性的介绍

    一、ant 属性设置,用 property 标签,详解如下:

    特点

    大小写敏感;

    不可改变,先到先得,谁先设定,之后的都不能改变。

    设置

    1 、设置 name 和 value 属性值,比如: <property name="srcdir" value="${basedir}/src"/>

    2 、 设置 name 和 refid 属性值,比如: <property name="srcpath" refid="dao.compile.classpath"/> ,其中dao.compile.classpath 在别的地方定义。

    3 、设置 name 和 location 属性值,比如: <property name="srcdir" location="src"/> ,即将 srcdir 的值设     置为:当前项目根目录的 /src 目录。

    4 、设置 file 属性值,比如: <property file="build.properties"/> , 导入 build.properties 属性文件中的属性值

    5 、设置 resource 属性值,比如: <propety resource="build.properties"/>, 导入 build.properties 属性文件中的属性值

    6 、设置 url 属性值,比如: <property url="http://www.blogjava.net/wiflish/build.properties"/>, 导入http://www.blogjava.net/wiflish/build.properties 属性文件中的属性值。

    7 、设置环境变量,比如: <property environment="env"/> ,设置系统的环境变量为前缀 env.  <property name="tomcat.home" value="${env.CATALINA_HOME}"/> 将系统的 tomcat 安装目录设置到     tomcat.home 属性中。

    代码如下:

    <?xml version="1.0" encoding="UTF-8"?>
    <project default="execute">
        
        <property name="build.dir" location="build"></property>
        <!--使用属性定义相应的路径时,使用location表明路径适合当前系统-->
        <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="com.learn.ant.HelloWorld"/>
        <property name="jar.name" value="hello.jar"></property>
                
        <target name="test">
            <echo>${build.dir}</echo>
            <echo>${build.classes}</echo>
        </target>
        
        <!--fileset可以设定一组文件集来进行操作,dir指明文件集要进行选择的路径,
        通过id可以指定这个文件的名称,在使用的时候进行直接的引入
        include和exclude可以设定包含返回和排除范围**/*.*所有目录中的所有文件
        -->
        <fileset id="src.path" dir="src">
            <include name="**/*.*"/>
            <!--<exclude name="**/*.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"></javac>
        </target>
        
        <target name="jar" depends="compile">
            <jar destfile="${build.lib.dir}/${jar.name}" basedir="${build.classes}">
                <manifest>
                    <attribute name="Main-Class" value="${execute.class}"/>
                    <attribute name="Build-By" value="Konghao"/>
                </manifest>
            </jar>    
        </target>
        
        <target name="execute" depends="jar,copySrc">
            
            <echo>基于类路径的classname来完成执行</echo>
            <java classname="${execute.class}" classpath="${build.classes}">
                <arg value="张三"/>
                <arg value="李四"/>
                <arg value="王五"/>
            </java>
            
            <echo>基于jar文件执行</echo>
            <java jar="${build.lib.dir}/${jar.name}" fork="true">
                <arg value="张三"/>
                <arg value="李四"/>
                <arg value="王五"/>
            </java>
        </target>
    </project>

    引用外部文件中定义的参数和值,以及使用 ant 属性和 系统环境变量参数

    build.xml 文件,代码如下:

    <?xml version="1.0" encoding="UTF-8"?>
    <project default="execute">
        
        <property name="build.dir" location="build"></property>
        <!--使用属性定义相应的路径时,使用location表明路径适合当前系统-->
        <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="com.learn.ant.HelloWorld"/>
        <property name="jar.name" value="hello.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可以设定包含返回和排除范围**/*.*所有目录中的所有文件
        -->
        <fileset id="src.path" dir="src">
            <include name="**/*.*"/>
            <!--<exclude name="**/*.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"></javac>
        </target>
        
        <target name="jar" depends="compile">
            <jar destfile="${build.lib.dir}/${jar.name}" basedir="${build.classes}">
                <manifest>
                    <attribute name="Main-Class" value="${execute.class}"/>
                    <attribute name="Build-By" value="Konghao"/>
                </manifest>
            </jar>    
        </target>
        
        <target name="execute" depends="jar,copySrc">
            
            <echo>基于类路径的classname来完成执行</echo>
            <java classname="${execute.class}" classpath="${build.classes}">
                <arg value="张三"/>
                <arg value="李四"/>
                <arg value="王五"/>
            </java>
            
            <echo>基于jar文件执行</echo>
            <java jar="${build.lib.dir}/${jar.name}" fork="true">
                <arg value="张三"/>
                <arg value="李四"/>
                <arg value="王五"/>
            </java>
        </target>
    </project>

    创建 build.properties 文件,代码如下:

    execute.class = ant.zttc.edu.cn.HelloWorld
    jar.name = hello.jar
  • 相关阅读:
    pickle示例
    Python 升级致yum 问题,pip 异常
    jdk 环境
    zookeeper
    Kafka-Monitor
    Kafka
    nxlog 日志采集
    elasticsearch 基本配置
    elasticsearch 单机多实例
    Elaticsearch 集群
  • 原文地址:https://www.cnblogs.com/hwlsniper/p/4100787.html
Copyright © 2011-2022 走看看