毫无疑问,ant在文件操作、命令执行、服务器操作等方面相比maven有绝对的优势。本文特此整理了ant一些常用命令,方便日后查阅和使用。
注意:xml中定义的属性,先定义的不会被后面的覆盖。属性文件中定义的属性,后者会覆盖前者。
定义一个属性
<property name="akey" value="avalue" />
加载属性文件
<property file="xxxxxx.properties" /> 或 <loadproperties srcFile="xxxxx.properties" />
引入操作系统环境变量,后续可通过${env.JAVA_HOME}等方式使用 注意:在windows中修改了了环境变量,可能需要注销并重新登录才能被ant识别
<property environment="env" />
引入一个属性。注意,可以在任何地方引入,包括属性文件中
${属性名}
当条件成立时,会进行赋值操作
<condition property="akey" value="avalue"> <isset property="keyexists" /> </condition>引入外部build.xml,其中的property和target等也会被引入
<import file="build.xml" />
定义一个task,并制定它依赖的task
<target name="clean" depends="a,b,c"></target>
引入第三方的task定义
<taskdef resource="com/xxxxx/xxxxxx/xxxxxx.properties" />
echo
<echo message="hehe" />
扔出一个异常
<fail message="hehe" />
删除文件或目录,注意:会连同目录本身一起删除
<delete includeemptydirs="true" failonerror="false" dir="./bin" ></delete> <delete includeemptydirs="true" failonerror="false" file="./xxxx.jar" ></delete>清空某目录
<delete includeemptydirs="true"> <fileset dir="./bin"> <include name="**/*"/> </fileset> </delete>重命名或移动文件
<move file="${p1}/target/${p1oldname}" tofile="${p1}/target/${p1name}"/>执行远程ssh命令
<sshexec host="${address}" username="${user}" password="${password}" trust="true" command="pkill java" />使用scp进行文件上传操作
<scp todir="${user}:${password}@${address}:/root/" trust="true"> <fileset dir="./target" includes="*.jar"/> </scp>执行cmd命令 注意:如果命令中包含双引号,需要使用"来进行转义(参考html)
<exec dir="." executable="cmd.exe" > <arg line="/c notepad.exe" /> </exec>执行sql语句 注意:需要将对应的数据库驱动复制到${ANT_HOME}/lib下
<sql driver="com.mysql.jdbc.Driver" url="jdbc:mysql:xxxxxxxxx" userid="root" password="xxxxxxx" > insert into xxxxx values(xxx,xxx,xx); </sql>