zoukankan      html  css  js  c++  java
  • Ant使用

    详细可参考:http://ant.apache.org/manual/Tasks/

    http://ant.apache.org/manual/index.html

    说明:xml很多的元素的写法均可用属性或是子元素来实现

    Ant

    Ant 是一个构件工具,可以实现项目的自动构件和部署,其构件文件(一般默认是build.xml,也可以用命令进行指定其他的xml文件)是基于XML编写的。

    其常用基本功能有:新建文件夹,移动文件夹,删除文件夹,复制文件夹,主要是用于进行Java项目的部署,对Java项目进行编译,运行,打包等工具,还可以与Junit结合进行单元测试。

    因为Ant是基于XML的,其主要的元素有project,target,property,path, pathelement,fileset,junit.

    project:是Ant构件文件的根元素,Ant构件文件至少包含一个project元素,每个project下面包含多个target元素;主要的属性有name(指定元素名称), default(指定默认执行的target名称), basedir(指定其路径的位置,默认为构件文件的所在目录)

    target:是Ant的基本执行单元,包含一个或多个具体的任务,多个target可以互相依赖(一般这也是必要的),属性主要有name,depends,if,unlesss,description

    property:可心看作是参数的定义,主要的属性有name,value(指定property的值), location(使property(预)指向一个文件(夹))

    path,pathelement,fielset均与路径相关,路径字符串中用“;”或“:”表示分隔;path元素一般期待看到的是一个路径,而fileset则期待看到一个文件集合;path可以用内嵌的pathelement元素来指定若干的位置,pathelemet元素有两个属性,location可以声明一个路径,而path可以声明多个路径用“:”或“;”分开; fileset可以内嵌入path中,用于指定特定的文件;path的使用方式主要有id声明然后refid引用
                    

    path例子:

        <path id="classpath">  
            <fileset dir="lib/optional" includes="*.jar"/>  
        </path>  
          
        <path id="tests-classpath">  
            <pathelement location="${build.classes}"/>  
            <path refid="classpath"/>  
        </path>  

    delete:属性有dir, file;

    例子如下:

    1)删除单个文件的实例:
    
    <delete file="ant.jar"/>
    
    这个例子的作用是删除基目录下的ant.jar文件。
    
    (2)删除目录及其下文件的实例:
    
    <delete dir="lib"/>
    
    这个例子的作用是删除lib目录,包括这个目录的所有子目录及文件,可以通过include或exclude类型指定删除的部分文件,而不是目录下的所有文件。
    <delete dir="lib" include="*.class">

    或者用fileset
    <delete>
      <fileset dir="." include="*.class"/>
    </delete>

    引用外部Ant文件:http://blog.csdn.net/samlei/article/details/4231496     

    例子:

    <?xml version="1.0"?>
    <project default="compile" name="Plugin Project" basedir=".">
         <description>My plugin</description>
         
        <property name="srcDir" location="."/>
        <property name="runDir" location="./../.." />
    
        <path id="ij">
            <pathelement path=".:./../../ij.jar"/>
        </path>
    
    
        <target name="init">
        </target>
    
        <target name="compile" depends="init">
            <javac srcdir="${srcDir}" destdir="${srcDir}">
                <classpath>
                    <path refid="ij" />
                </classpath>
            </javac>
        </target>
        
        <target name="run" description="run the ImageJ with the external build.xml">
            <ant antfile="build.xml"
                dir="${runDir}"
                inheritall="true"
                target="run">
            </ant>
        </target>
    
        <target name="clean">
          <delete>
              <fileset dir="." includes="*.class"/>
          </delete>
        </target>
    </project>

    Ant基本使用例子:

    <?xml version="1.0"?>
    <project name="study" default="compile" basedir=".">
        <property name="srcDir" value="firstProject"></property>
        <property name="destDir" value="copyfile"></property>
    
        <target name="init">
            <mkdir dir="${destDir}"/>
            <mkdir dir="newdir" />
            <copy todir="${destDir}">
                <fileset dir="${srcDir}"/>
            </copy>
        </target>
        
        <!--输出信息(日志与监控器)有file,append属性-->
        <target name="echo" depends="init">
            <echo message="Hello,Amigo" />
        </target>
    
        <target name="compile" depends="init">
        </target>
        
        <target name="move" depends="init">
            <move todir="newdir"> 
                <fileset dir="${srcDir}"/>
            </move>
        </target>
    
        <target name="clean" depends="init">
            <delete file=""/>
            <delete dir="${destDir}"/>
        </target>
    </project>

    Ant与Java:

    <?xml version="1.0"?>
    <project default="run" name="Project Argon" basedir=".">
         <description>A simple Java project</description>
         
        <property name="srcDir" location="."/>
        <property name="buildDir" location="build"/>
            <property name="distDir" location="dist"/>
        <property name="main-class" value="Runners.RunnerDemo" />
        <property name="main-class1" value="Runners.RunnerPart1" />
        <property name="main-class2" value="Runners.RunnerPart2" />
     
        <target name="init">
           <tstamp/>
           <mkdir dir="${buildDir}"/>
           <mkdir dir="${distDir}"/>
        </target>
        <target name="compile" depends="init">
            <javac srcdir="${srcDir}" destdir="${buildDir}"/>
        </target>
        
        <target name="run" depends="compile">
            <java fork="true" classpath="${buildDir}" classname="${main-class}" />
        </target>
    
        <target name="run1" depends="compile">
            <java fork="true" classpath="${buildDir}" classname="${main-class1}" />
        </target>
    
        <target name="run2" depends="compile">
            <java fork="true" classpath="${buildDir}" classname="${main-class2}" />
        </target>
    
        <target name="dist" depends="compile">
           <jar destfile="${distDir}/package-${DSTAMP}.jar" basedir="${buildDir}">
             <manifest>
               <attribute name="Built-By" value="${user.name}"/>
               <attribute name="Main-Class" value="package.Main"/>
             </manifest>
           </jar>
           <jar destfile="${distDir}/package-src-${DSTAMP}.jar" basedir="${srcDir}"/>
       </target>
       
        <target name="clean">
          <delete dir="${buildDir}"/>
          <delete dir="${distDir}"/>
          <delete file="trash"/>
          <delete file="result.txt"/>
        </target>
    </project>

    ant与junit结合:

    <?xml version="1.0"?>
    <project default="junit" name="Project Argon" basedir=".">
         <description>A simple Java project</description>
         
        <property name="srcDir" location="."/>
        <property name="buildDir" location="build"/>
        <property name="distDir" location="dist"/>
        <property name="reportsDir" Location="report"/>
     
        <path id="tcls">
            <pathelement path="./build" />
            <pathelement path="."/>
            <pathelement path="./junit-4.9.jar" />
            <pathelement path="./../ImageReader/ImageReader.jar" />
        </path>
    
        <target name="init">
           <tstamp/>
           <mkdir dir="${buildDir}"/>
           <mkdir dir="${distDir}"/>
           <mkdir dir="${reportsDir}" />
        </target>
        <target name="compile" depends="init">
            <javac classpath=".:./../ImageReader/ImageReader.jar:./junit-4.9.jar" srcdir="${srcDir}" destdir="${buildDir}"/>
        </target>
        
        <target name="junit" depends="compile">
            <junit printsummary="yes">
                <classpath>
                    <path refid="tcls"/>
                </classpath>
                <formatter type="xml" usefile="true"/>
                <batchtest fork="yes" todir="${reportsDir}">
                    <fileset dir="." includes="*Test.java" />
                </batchtest>
            </junit>
    
            <junitreport todir="${reportsDir}">
                <fileset dir="${reportsDir}">
                    <include name="TEST-*.xml"/>
                </fileset>
                <report format="frames" todir="${reportsDir}/html"/>
            </junitreport>
        </target>
         
        <target name="dist" depends="compile">
           <jar destfile="${distDir}/package-${DSTAMP}.jar" basedir="${buildDir}">
             <manifest>
               <attribute name="Built-By" value="${user.name}"/>
               <attribute name="Main-Class" value="package.Main"/>
             </manifest>
           </jar>
           <jar destfile="${distDir}/package-src-${DSTAMP}.jar" basedir="${srcDir}"/>
       </target>
    
        <target name="clean">
          <delete dir="${buildDir}"/>
          <delete dir="${distDir}"/>
          <delete dir="${reportsDir}"/>
        </target>
    </project>

     ant与jar结合(推荐使用)

    <?xml version="1.0" encoding="UTF-8"?>
    <project default="run" name="Project" basedir=".">
         <description>A simple Java project</description>
         
        <!-- 定义全局属性,使用location属性提供对不同平台的支持 --> <property name="srcDir" location="."/> <property name="buildDir" location="build" /> <property name="distDir" location="dist" />

        <!-- 定义可运行主类 --> <property name="main-class" value="process.algorithms.Ch1Introduction" />
        <!-- 设置classpath -->
        <path id="rt">
            <pathelement path="./../rt.jar" />
        </path>

        <path id="mainclass">
            <pathelement path="process/algorithms" />
            <pathelement path="./../rt.jar" />
        </path>

        <!-- 初始化工程结构 --> <target name="init"> <mkdir dir="${buildDir}" /> <mkdir dir="${distDir}" /> </target>     <!-- 编译工程 --> <target name="compile" depends="init"> <javac srcdir="${srcDir}" destdir="${buildDir}"> <classpath> <path refid="rt" /> </classpath> </javac> </target> <!-- 打包工程 --> <target name="package" depends="compile" description=""> <jar destfile="${distDir}/${ant.project.name}.jar" basedir="${buildDir}"> <manifest> <!-- 设置jar运行时的可运行主类 --> <attribute name="Main-Class" value="${main-class}"/> <attribute name="Built-By" value="Harrison Wang"/> </manifest> </jar> </target> <!-- 运行jar --> <target name="run" depends="package"> <java jar="${distDir}/${ant.project.name}.jar" fork="true"/> </target>     <!-- 清理工程 --> <target name="clean">
        <!-- <delete> <fileset dir="." includes="*.class"/> </delete>
        --> <delete dir="${buildDir}" /> <delete dir="${distDir}" /> </target> </project>
  • 相关阅读:
    International Collegiate Programming Contest 2019 Latin American Regional Contests E. Eggfruit Cake(思维/尺取)
    Codeforces Round #673 (Div. 2) C. k-Amazing Numbers(思维)
    2020 计蒜之道 预赛 第一场 A、B
    生成字符画
    我对目前国内教学的看法
    Stm32 调试时发生HardFault_Handler
    python异常处理
    windows nfs客户端配置
    linux服务器删除文件后df -h查看文件系统占比无变化
    python ssh小程序
  • 原文地址:https://www.cnblogs.com/kinthon/p/4765541.html
Copyright © 2011-2022 走看看