ant常用命令

来源:互联网 发布:limit sql 编辑:程序博客网 时间:2024/06/03 09:56

1. mkdir

<mkdir dir="build/classes"/>

创建一个目录,如果他的父目录不存在,也会被同时创建。


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) 拷贝一组文件到指定目录下,替换其中的@TITLE@内容为"Foo Bar"
<copy todir="../backup/dir">
<fileset dir="src_dir"/>
<filterset>
<filter token="TITLE" value="Foo Bar"/>
</filterset>
</copy>
(7) Collect all items from the current CLASSPATH setting into a destination directory, flattening the directory structure.
  <copy todir="dest" flatten="true">
    <path>
      <pathelement path="${java.class.path}"/>
    </path>
  </copy>
(8) Copies some resources to a given directory.
  <copy todir="dest" flatten="true">
    <resources>
      <file file="src_dir/file1.txt"/>
      <url url="http://ant.apache.org/index.html"/>
    </resources>
  </copy>

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>
(5) 删除指定目录及其子目录,除了他自己
<delete includeemptydirs="true">
    <fileset dir="build" includes="**/*"/>
</delete>

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>

5. java
执行指定的java类
(1) classname中指定要执行的类,classpath设定要使用的环境变量
<java classname="test.Main">
<classpath>
<pathelement location="dist/test.jar"/>
<pathelement path="${java.class.path}"/>
</classpath>
</java>
(2) Runs the rmic compiler for a certain class
<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>

6. javac

编 译${src}和${src2}目录及其子目录下的所有。Java文件,但是package/p1/**,mypackage/p2/**将被编译,而mypackage/p1/testpackage/**将不会被编译。Class文件将放在${build}指定的目录下,classpath表示需要用到的类文件或者目录,debug设置为on表示输出debug信息

<javac srcdir="${src}:${src2}"
destdir="${build}"
includes="mypackage/p1/**,mypackage/p2/**"
excludes="mypackage/p1/testpackage/**"
classpath="xyz.jar"
debug="on"

/>

7. jar
(1) 将${build}/classes下面的所有文件打包到${dist}/lib/app.jar中,但是包括mypackage/test/所有文件不包括所有的Test.class

<jar destfile="${dist}/lib/app.jar"
basedir="${build}/classes"
includes="mypackage/test/**"
excludes="**/Test.class"
/>
(2manifest属性指定自己的META-INF/MANIFEST.MF文件,而不是由系统生成

<jar destfile="${dist}/lib/app.jar"
basedir="${build}/classes"
includes="mypackage/test/**"
excludes="**/Test.class"
manifest=”my.mf”
/>

(3) 多处 


<jar destfile="${dist}/lib/app.jar">

    <fileset dir="${build}/classes" excludes="**/Test.class" />

    <fileset dir="${src}/resources"/>

</jar>


8. 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
下面是我们的task的内容: 
<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


9. 时间戳
在生成环境中使用当前时间和日期,以某种方式标记某个生成任务的输出,以便记录它是何时生成的,这经常是可取的。这可能涉及编辑一个文件,以便插入一个字符串来指定日期和时间,或将这个信息合并到 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 类所定义的那些格式字符相同
 
10. 执行SQL语句
通过jdbc执行SQL语句
(1) 执行sql文件

<sql
driver="org.gjt.mm.mysql.Driver"
url="jdbc:mysql://localhost:3306/mydb"
userid="root"
password="root"
src="data.sql"
/>
(2) 只有在oracle、版本是8.1的时候才执行

<sql
driver="org.database.jdbcDriver"
url="jdbc:database-url"
userid="sa"
password="pass"
src="data.sql"
rdbms="oracle"
version="8.1."
>
</sql>

(3) 执行sql语句

<sql driver="org.database.jdbcDriver"

       url="jdbc:database-url"

       userid="sa"

       password="pass" >

insert

into table some_table

values(1,2,3,4);

truncate table some_other_table;

</sql>


11. 发送邮件
使用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: 设置附件

原创粉丝点击