ant使用總結(二):相關命令說明
阿新 • • 發佈:2019-02-20
在ant安裝目錄的manual目錄是ant的說明文件,開啟index.xml,點選Using Apache ant有使用說明。
相關命令說明
指定配置檔案
執行ant命令,預設使用當前目錄下的build.xml,可以通過-f指定配置檔案。 示例:ant -f 配置檔案路徑project
屬性: name:工程名稱 default:預設執行的targettarget
<target>是一個容器,指令集合,一個事務。 屬性: depends:依賴項,執行該target之前需要先執行的target。 name:名稱 例子: <target name="A" ><target name="B" depends="A">
<target name="C" depends="A,B"> 在命令列中執行指定target:ant targetName
property
ant中的屬性,相當於定義一個變數,通過${屬性名}引用。
屬性:
name:變數名
value:值
file:屬性配置檔案路徑,配置檔案中要以key=value的格式配置屬性。例子:<property file="local.properties" />
environment:給環境變數起一個別名例子: <property name="a" value="aaa" /> <target name="print"> <echo>${a}</echo> </target>
import
包含一個檔案,project的name屬性值不能衝突。optional表示該檔案是否可選。 <import file="test2.xml" optional="true" />condition
<property name="a" value="aaa" /> <!-- <property name="b" value="bbb" /> --> <!-- 如果設定了屬性b則值為${b},否則值為${a}--> <condition property="val" value="${b}" else="${a}"> <!-- 判斷是否設定了指定屬性 --> <isset property="b" /> </condition>
propertyfile
把屬性儲存到一個檔案裡 屬性: file:檔案路徑 <propertyfile file="auto.prop">
<!-- 儲存auto.umeng.channel=${a}到檔案 -->
<entry key="auto.umeng.channel" value="${a}" />
</propertyfile>
copy
1.拷貝單個檔案到指定路徑 <copy file="a.txt" tofile="b.txt" /> 2.拷貝單個檔案到指定目錄 <copy file="a.txt " todir="../tmpdir " / > 3.拷貝一個目錄到另外一個目錄下 <copy todir="../destDir"> <fileset dir="srcDir" /> </copy> 4.拷貝一批檔案到指定目錄下 <copy todir="../destDir"> <fileset dir="srcDir"> <include name="**/*.java"> <exclude name="**/Test.java"></fileset> </copy> <copy todir="../destDir"> <fileset dir="srcDir" excludes="**/*.java"/> </copy>
delete
1.刪除一個檔案 <delete file="a.txt" /> 2.刪除指定目錄及其子目錄 <delete dir="dir" /> 3.刪除指定的一組檔案 <delete> <fileset dir="." includes="**/*.bak" /> </delete>move
1.移動或重新命名一個檔案 <move file="a.txt" tofile="b.txt" /> 2.移動一個檔案到指定目錄下 <move file="a.txt" todir="destDir" /> 3.移動一個目錄到另一個目錄下 <move todir="destDir"> <fileset dir="srcDir" /> <move/> 4.將一組檔案移動到另一個目錄下 <move todir="destDir"> <fileset dir"srcDir"> <include name="**/*.jar" /> <exclude name="**/ant.jar" /></fileset> </move>
javac
<javac srcdir="原始檔目錄" destdir="編譯輸出目錄" classpath="依賴的jar檔案或類目錄" debug="on表示輸入日誌資訊,off表示不輸出" includes="包含檔案" excludes="忽略檔案" />java
<java classname="執行的類的全路徑名"><classpath>
<pathelement location="xxx.jar" />
<pathelement path="classpath" />
</classpath>
</java>
pathelement可以通過location屬性包含一個jar或者通過path屬性包含一個類路徑。classpath用於設定要使用的環境變數。
jar
<jar destfile="xxx.jar" basedir="./classes" includes="./lib/**(包含lib目錄下所有檔案)" excludes="**/Test.class(忽略所有Test.class)" manifest="自定義mf檔案命名"/>if
if通過條件判斷決定是否進行一些操作。 <!-- 如果條件成立,則呼叫print -->
<if>
<!-- 判斷指定屬性值是否為true -->
<!--
<istrue value="${a}" />
-->
<!-- 判斷是否設定了指定屬性 -->
<!--
<isset property="prop"/>
-->
<!-- 判斷兩個值是否相等 -->
<equals arg1="${channel}" arg2="2" />
<then>
<antcall target="print" />
</then>
</if>
antcall標籤用於呼叫一個target。
script
script標籤用於插入指令碼程式碼。 示例:獲取當前時間並設定為屬性time的值。<script language="javascript">
<![CDATA[
project.setProperty("time",Math.floor((new Date()).getTime()/1000));
]]>
</script>
時間戳
格式化當前時間並設定屬性time。 <tstamp>
<format property="time"
pattern="yy.M.d.HHmm" />
</tstamp>
新增自定義jar到ant的classpath
<!-- 新增ant-contrib-1.0b3.jar到classpath -->
<taskdef resource="net/sf/antcontrib/antcontrib.properties">
<classpath>
<pathelement location="${env.ANT_ROOT}\lib\ant-contrib-1.0b3.jar" />
</classpath>
</taskdef>
我這裡是把ant-contrib-1.0b3.jar放到了ant安裝目錄的lib目錄下。 示例程式碼:
channel = ${channel}
執行效果:
替換指定字串
轉義符列表:< | < | 小於號 |
> | > | 大於號 |
& | & | 和 |
' | ' | 單引號 |
" | " | 雙引號 |
replaceregexp標籤的是支援正則表示式的。
相關文章: