ant的if-else
ant中的條件判斷實例:
ant中條件判斷這里有2種形式,一種是運用 target 的if and unless attributes,一種是運用ant-contrib中的if else。
第一種:
<project name="test" basedir="." default="">
??? <condition property="test.exist">
??????? <and>
??????????? <available file="test-1.0.jar" filepath="test/target/>
??????? </and>
??? </condition>
??? <target name="copy-target" if="test.exist" description="Test Copy">
??????? <copy todir="test/libdb" preservelastmodified="true">
??????????? <fileset dir="test/target">
??????????????? <include name="test-1.0.jar"/>
??????????? </fileset>
??????? </copy>
??? </target>
??? <target name="copy" unless="test.exist" depends="copy-target">
??????? <copy todir="test/libdb" preservelastmodified="true">
??????????? <fileset dir="test/built">
??????????????? <include name="test-1.0.jar"/>
??????????? </fileset>
??????? </copy>
??? </target>
</project>
如果test/target中test-1.0.jar存在,就把它copy到test/libdb目錄下。
如果不存在就從test/built中把test-1.0.jar copy到test/libdb目錄下。
第二種:
1.先到http://ant-contrib.sourceforge.net/網站下載最新的ant-contrib.jar;
? 1.1 copy ant-contrib.jar到ant安裝目錄下的lib目錄下,如果你想在你的工程中用這個if-else的tasks,就添加下面一行到你的 build.xml文件中:
<taskdef resource="net/sf/antcontrib/antcontrib.properties"/>
? 1.2 也可以把ant-contrib.jar copy到一個相對獨立的目錄下,但是你在用的時候一定要指定這個目錄,以便于ant能找到它,例如(lib 目錄D:/ant-contrib),code如下:
<project name="test" basedir="." default="">
??? <taskdef resource="net/sf/antcontrib/antcontrib.properties">
??????? <classpath>
??????????? <pathelement location="D:/ant-contrib/ant-contrib-1.0b2.jar"/>
??????? </classpath>
??? </taskdef>
??? <available property="test.exist" file="test-1.0.jar" filepath="test/target"/>
??? <target name="copy" description="Test Copy">
??????? <if>
??????????? <isset property="test.exist"/>
??????????? <then>
??????????????? <copy todir="test/libdb" preservelastmodified="true">
??????????????????? <fileset dir="test/target">
??????????????????????? <include name="test-1.0.jar"/>
??????????????????? </fileset>
??????????????? </copy>
??????????? </then>
??????????? <else>
??????????????? <copy todir="test/libdb" preservelastmodified="true">
??????????????????? <fileset dir="test/built">
??????????????????????? <include name="test-1.0.jar"/>
??????????????????? </fileset>
??????????????? </copy>
??????????? </else>
??????? </if>
??? </target>
</project>
2. available 釋意:
Available判斷某個類,或某個文件,或某個路徑。如果存在,則設置某個property。返回true.
其格式如下:
??? 判斷某個類是否存在:
??? <available property="class.exist" classname="package.test" classpath ="dist/test.jar"/>
??? 判斷某個文件是否存在:
??? <available property="file.exist" file="test.txt" filepath="src/test" type= "file"/>
??? 判斷某個資源是否存在:
??? <available property="resource.exist" resource="package/test/test1.class" classpath="dist/test.jar"/>
3. ant-contrib參考地址:
http://ant-contrib.sourceforge.net/ant-contrib/manual/tasks/index.html
?
總結
以上是生活随笔為你收集整理的ant的if-else的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ant基本标签 及import prop
- 下一篇: aspectj annotation-