posts - 72, comments - 66, trackbacks - 0, articles - 0

          ant 條件判斷 condition

          Posted on 2008-05-21 15:26 Fingki.li 閱讀(10645) 評論(0)  編輯  收藏 所屬分類: About development
          最近收到一個ticket,用ant寫個build.xml,用到condition,作筆記如下:

              basic elements: istrue isfalse not and or xor available isset equals  filesmatch
              1、istrue isfalse:斷言 真 假
          <project name="testCondition">
              <target name="test">
                  <condition property="scondition">
                      <istrue value="true"/>                   
                  </condition>
                  <antcall target="isTrue"></antcall>
                  <antcall target="isFalse"></antcall>       
              </target>
              <target name="isTrue" if="scondition">
                  <echo>is ture</echo>
              </target>
              <target name="isFalse" unless="scondition">
                  <echo>is false</echo>
              </target>
          </project>

              2、邏輯運算
              2.1、not 邏輯非 
          <project name="testCondition">
              <target name="test">
                  <condition property="scondition">
                      <not>
                          <istrue value="true"/>                   
                      </not>
                  </condition>
                  <antcall target="isTrue"></antcall>
                  <antcall target="isFalse"></antcall>       
              </target>
              <target name="isTrue" if="scondition">
                  <echo>is ture</echo>
              </target>
              <target name="isFalse" unless="scondition">
                  <echo>is false</echo>
              </target>
          </project>
              2.2、and 邏輯與
          <project name="testCondition">
              <target name="test">
                  <condition property="scondition">
                      <and>
                          <istrue value="true"/>
                          <istrue value="false"/>                   
                      </and>
                  </condition>
                  <antcall target="isTrue"></antcall>
                  <antcall target="isFalse"></antcall>       
              </target>
              <target name="isTrue" if="scondition">
                  <echo>is ture</echo>
              </target>
              <target name="isFalse" unless="scondition">
                  <echo>is false</echo>
              </target>
          </project>
              2.3、or 邏輯或 xor異或 (語法上與and類似)

              3、available 是否可用
          <project name="testCondition">
              <path id="all.test.classes">        
                   <pathelement location="bin"/>
               </path>
              <target name="test">
                  <condition property="scondition">
                      <!--在指定的classpath路徑下是否存在資源 TestTest.class-->
                      <available resource="TestTest.class">
                          <classpath refid="all.test.classes" />       
                      </available>
                  </condition>
                  <antcall target="isTrue"></antcall>
                  <antcall target="isFalse"></antcall>       
              </target>
              <target name="isTrue" if="scondition">
                  <echo>is ture</echo>
              </target>
              <target name="isFalse" unless="scondition">
                  <echo>is false</echo>
              </target>
          </project>

              4、isset 指定屬性是否存在
          <project name="testCondition">
              <!--屬性也可以通過ant參數-D來設置-->
              <property name="name" value="this is name"/>   
              <target name="test">
                  <condition property="scondition">
                      <!--如果屬性name不存在則返回false-->
                      <isset property="name"/>
                  </condition>
                  <antcall target="isTrue"></antcall>
                  <antcall target="isFalse"></antcall>       
              </target>
              <target name="isTrue" if="scondition">
                  <echo>is ture</echo>
              </target>
              <target name="isFalse" unless="scondition">
                  <echo>is false</echo>
              </target>
          </project>
              5、equals 是否相等
          <project name="testCondition">
              <!--屬性也可以通過ant參數-D來設置-->
              <property name="name" value="this is name"/>   
              <target name="test">
                  <condition property="scondition">
                      <!--如果arg1的值與arg2的值相等返回true,否則為false-->
                      <equals arg1="${name}" arg2="this is name"/>
                  </condition>
                  <antcall target="isTrue"></antcall>
                  <antcall target="isFalse"></antcall>       
              </target>
              <target name="isTrue" if="scondition">
                  <echo>is ture</echo>
              </target>
              <target name="isFalse" unless="scondition">
                  <echo>is false</echo>
              </target>
          </project>   
              6、filesmatch 比較文件
          <project name="testCondition">       
              <target name="test">
                  <condition property="scondition">
                      <!--如果file1所代表的文件與file2所代表的文件相等返回true,否則為false-->
                      <filesmatch file1="testfile1.txt" file2="testfile2.txt"/>
                  </condition>
                  <antcall target="isTrue"></antcall>
                  <antcall target="isFalse"></antcall>       
              </target>
              <target name="isTrue" if="scondition">
                  <echo>is ture</echo>
              </target>
              <target name="isFalse" unless="scondition">
                  <echo>is false</echo>
              </target>
          </project>   


          更多內容可以參考:http://ant.apache.org/manual/CoreTasks/conditions.html
          主站蜘蛛池模板: 新晃| 申扎县| 邢台县| 黎川县| 墨竹工卡县| 江达县| 晴隆县| 平遥县| 长汀县| 垦利县| 田林县| 始兴县| 巴马| 咸阳市| 昌平区| 海兴县| 涞水县| 伊川县| 三门县| 重庆市| 泸溪县| 黎川县| 房山区| 鲁甸县| 惠来县| 牡丹江市| 高碑店市| 兴义市| 灵石县| 丰顺县| 三河市| 乐昌市| 南投市| 襄城县| 永胜县| 温宿县| 阿拉善右旗| 泉州市| 濮阳县| 建宁县| 信丰县|