• 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
  • 相关阅读:
    Codeforces Beta Round #92 (Div. 2 Only) B. Permutations 模拟
    POJ 3281 Dining 最大流 Dinic算法
    POJ 2441 Arrange the BUlls 状压DP
    URAL 1152 Faise Mirrors 状压DP 简单题
    URAL 1039 Anniversary Party 树形DP 水题
    URAL 1018 Binary Apple Tree 树形DP 好题 经典
    pytorch中的forward前向传播机制
    .data()与.detach()的区别
    Argparse模块
    pytorch代码调试工具
  • 原文地址:https://www.cnblogs.com/hwlsniper/p/4100787.html
Copyright © 2020-2023  润新知