zoukankan      html  css  js  c++  java
  • ant常用命令


    4.1 File(Directory)类
    4.1.1 Mkdir
    ? 创建一个目录,如果他的父目录不存在,也会被同时创建。
    ? 例子:
    <mkdir dir="build/classes"/>
    ? 说明: 如果build不存在,也会被同时创建
    4.1.2 Copy
    ? 拷贝一个(组)文件、目录
    ? 例子:
    1. 拷贝单个的文件:
    <copy file="myfile.txt" tofile="mycopy.txt"/>
    2. 拷贝单个的文件到指定目录下
    <copy file="myfile.txt" todir="../some/other/dir"/>
    3. 拷贝一个目录到另外一个目录下
    <copy todir="../new/dir">
    <fileset dir="src_dir"/>
    </copy>
    4. 拷贝一批文件到指定目录下
    <copy todir="../dest/dir">
    <fileset dir="src_dir">
    <exclude name="**/*.java"/>
    </fileset>
    </copy>

    <copy todir="../dest/dir">
    <fileset dir="src_dir" excludes="**/*.java"/>
    </copy>
    5. 拷贝一批文件到指定目录下,将文件名后增加。Bak后缀
    <copy todir="../backup/dir">
    <fileset dir="src_dir"/>
    <mapper type="glob" from="*" to="*.bak"/>
    </copy>
    6. 拷贝一组文件到指定目录下,替换其中的@标签@内容
    <copy todir="../backup/dir">
    <fileset dir="src_dir"/>
    <filterset>
    <filter token="TITLE" value="Foo Bar"/>
    </filterset>
    </copy>
    4.1.3 Delete
    ? 删除一个(组)文件或者目录
    ? 例子
    1. 删除一个文件
    <delete file="/lib/ant.jar"/>
    2. 删除指定目录及其子目录
    <delete dir="lib"/>
    3. 删除指定的一组文件
    <delete>
    <fileset dir="." includes="**/*.bak"/>
    </delete>
    4. 删除指定目录及其子目录,包括他自己
    <delete includeEmptyDirs="true">
    <fileset dir="build"/>
    </delete>
    4.1.4 Move
    ? 移动或重命名一个(组)文件、目录
    ? 例子:
    1. 移动或重命名一个文件
    <move file="file.orig" tofile="file.moved"/>
    2. 移动或重命名一个文件到另一个文件夹下面
    <move file="file.orig" todir="dir/to/move/to"/>
    3. 将一个目录移到另外一个目录下
    <move todir="new/dir/to/move/to">
    <fileset dir="src/dir"/>
    </move>
    4. 将一组文件移动到另外的目录下
    <move todir="some/new/dir">
    <fileset dir="my/src/dir">
    <include name="**/*.jar"/>
    <exclude name="**/ant.jar"/>
    </fileset>
    </move>
    5. 移动文件过程中增加。Bak后缀
    <move todir="my/src/dir">
    <fileset dir="my/src/dir">
    <exclude name="**/*.bak"/>
    </fileset>
    <mapper type="glob" from="*" to="*.bak"/>
    </move>


    4.2 Java相关
    4.2.1 Javac
    ? 编译java原代码
    ? 例子
    1. <javac srcdir="${src}"
    destdir="${build}"
    classpath="xyz.jar"
    debug="on"
    />
    编译${src}目录及其子目录下的所有。Java文件,。Class文件将放在${build}指定的目录下,classpath表示需要用到的类文件或者目录,debug设置为on表示输出debug信息
    2. <javac srcdir="${src}:${src2}"
    destdir="${build}"
    includes="mypackage/p1/**,mypackage/p2/**"
    excludes="mypackage/p1/testpackage/**"
    classpath="xyz.jar"
    debug="on"
    />
    编译${src}和${src2}目录及其子目录下的所有。Java文件,但是package/p1/**,mypackage/p2/**将被编译,而mypackage/p1/testpackage/**将不会被编译。Class文件将放在${build}指定的目录下,classpat
    h表示需要用到的类文件或者目录,debug设置为on表示输出debug信息
    3. <property name="classpath" value=".;./xml-apis.jar;../lib/xbean.jar;./easypo.jar"/>

    <javac srcdir="${src}"
    destdir="${src}"
    classpath="${classpath}"
    debug="on"
    />
    路径是在property中定义的
    4.2.2 java
    ? 执行指定的java类


    ? 例子:
    1. <java classname="test.Main">
    <classpath>
    <pathelement location="dist/test.jar"/>
    <pathelement path="${java.class.path}"/>
    </classpath>
    </java>
    classname中指定要执行的类,classpath设定要使用的环境变量
    2. <path id="project.class.path">
    <pathelement location="lib/"/>
    <pathelement path="${java.class.path}/"/>
    <pathelement path="${additional.path}"/>
    </path>

    <target ... >
    <rmic ...>
    <classpath refid="project.class.path"/>
    </rmic>
    </target>

    4.3 打包相关
    4.3.1 jar
    ? 将一组文件打包
    ? 例子:
    1. <jar destfile="${dist}/lib/app.jar" basedir="${build}/classes"/>
    将${build}/classes下面的所有文件打包到${dist}/lib/app.jar中
    2. <jar destfile="${dist}/lib/app.jar"
    basedir="${build}/classes"
    includes="mypackage/test/**"
    excludes="**/Test.class"
    />
    将${build}/classes下面的所有文件打包到${dist}/lib/app.jar中,但是包括mypackage/test/所有文件不包括所有的Test.class
    3. <jar destfile="${dist}/lib/app.jar"
    basedir="${build}/classes"
    includes="mypackage/test/**"
    excludes="**/Test.class"
    manifest=”my.mf”
    />
    manifest属性指定自己的META-INF/MANIFEST.MF文件,而不是由系统生成
    4.3.2 war
    ? 对Jar的扩展,用于打包Web应用
    ? 例子:
    ? 假设我们的文件目录如下:
    thirdparty/libs/jdbc1.jar
    thirdparty/libs/jdbc2.jar
    build/main/com/myco/myapp/Servlet.class
    src/metadata/myapp.xml
    src/html/myapp/index.html
    src/jsp/myapp/front.jsp
    src/graphics/images/gifs/small/logo.gif
    src/graphics/images/gifs/large/logo.gif
    ? 下面是我们的任务的内容:
    <war destfile="myapp.war" webxml="src/metadata/myapp.xml">
    <fileset dir="src/html/myapp"/>
    <fileset dir="src/jsp/myapp"/>
    <lib dir="thirdparty/libs">
    <exclude name="jdbc1.jar"/>
    </lib>
    <classes dir="build/main"/>
    <zipfileset dir="src/graphics/images/gifs"
    prefix="images"/>
    </war>
    ? 完成后的结果:
    WEB-INF/web.xml
    WEB-INF/lib/jdbc2.jar
    WEB-INF/classes/com/myco/myapp/Servlet.class
    META-INF/MANIFEST.MF
    index.html
    front.jsp
    images/small/logo.gif
    images/large/logo.gif
    4.3.3 ear
    ? 用于打包企业应用
    ? 例子
    <ear destfile="${build.dir}/myapp.ear" appxml="${src.dir}/metadata/application.xml">
    <fileset dir="${build.dir}" includes="*.jar,*.war"/>
    </ear>

    4.4 时间戳
    在生成环境中使用当前时间和日期,以某种方式标记某个生成任务的输出,以便记录它是何时生成的,这经常是可取的。这可能涉及编辑一个文件,以便插入一个字符串来指定日期和时间,或将这个信息合并到 JAR 或
    zip 文件的文件名中。
    这种需要是通过简单但是非常有用的 tstamp 任务来解决的。这个任务通常在某次生成过程开始时调用,比如在一个 init 目标中。这个任务不需要属性,许多情况下只需 <tstamp/> 就足够了。
    tstamp 不产生任何输出;相反,它根据当前系统时间和日期设置 Ant 属性。下面是 tstamp 设置的一些属性、对每个属性的说明,以及这些属性可被设置到的值的例子:
    属性 说明 例子
    DSTAMP 设置为当前日期,默认格式为yyyymmdd 20031217
    TSTAMP 设置为当前时间,默认格式为 hhmm 1603
    TODAY 设置为当前日期,带完整的月份 2003 年 12 月 17 日
    例如,在前一小节中,我们按如下方式创建了一个 JAR 文件:

    <jar destfile="package.jar" basedir="classes"/>

    在调用 tstamp 任务之后,我们能够根据日期命名该 JAR 文件,如下所示:

    <jar destfile="package-${DSTAMP}.jar" basedir="classes"/>

    因此,如果这个任务在 2003 年 12 月 17 日调用,该 JAR 文件将被命名为 package-20031217.jar。
    还可以配置 tstamp 任务来设置不同的属性,应用一个当前时间之前或之后的时间偏移,或以不同的方式格式化该字符串。所有这些都是使用一个嵌套的 format 元素来完成的,如下所示:

    <tstamp>
    <format property="OFFSET_TIME"
    pattern="HH:mm:ss"
    offset="10" unit="minute"/>
    </tstamp>

    上面的清单将 OFFSET_TIME 属性设置为距离当前时间 10 分钟之后的小时数、分钟数和秒数。
    用于定义格式字符串的字符与 java.text.SimpleDateFormat 类所定义的那些格式字符相同

    4.5 执行SQL语句
    ? 通过jdbc执行SQL语句
    ? 例子:
    1. <sql
    driver="org.gjt.mm.mysql.Driver"
    url="jdbc:mysql://localhost:3306/mydb"
    userid="root"
    password="root"
    src="data.sql"
    />
    2. <sql
    driver="org.database.jdbcDriver"
    url="jdbc:database-url"
    userid="sa"
    password="pass"
    src="data.sql"
    rdbms="oracle"
    version="8.1."
    >
    </sql>
    只有在oracle、版本是8.1的时候才执行

    4.6 发送邮件
    ? 使用SMTP服务器发送邮件
    ? 例子:
    <mail mailhost="smtp.myisp.com" mailport="1025" subject="Test build">
    <from address="me@myisp.com"/>
    <to address="all@xyz.com"/>
    <message>The ${buildname} nightly build has completed</message>
    <fileset dir="dist">
    <includes name="**/*.zip"/>
    </fileset>
    </mail>
    ? mailhost: SMTP服务器地址
    ? mailport: 服务器端口
    ? subject: 主题
    ? from: 发送人地址
    ? to: 接受人地址
    ? message: 发送的消息
    ? fileset: 设置附件

  • 相关阅读:
    洛谷P3799 妖梦拼木棒
    bzoj1008 [HNOI2008]越狱
    洛谷P3414 SAC#1
    洛谷P1078 文化之旅
    bzoj1053 [HAOI2007]反素数ant
    洛谷P1588 丢失的牛
    bzoj1085 [SCOI2005]骑士精神
    noip2016 蚯蚓
    noip2016 换教室
    html笔记03:表单
  • 原文地址:https://www.cnblogs.com/houguiqiang/p/3337044.html
Copyright © 2011-2022 走看看