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

          ant 條件判斷 condition

          Posted on 2008-05-21 15:26 Fingki.li 閱讀(10639) 評論(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
          主站蜘蛛池模板: 梨树县| 北碚区| 旬邑县| 剑阁县| 平谷区| 盘山县| 达拉特旗| 宣城市| 东莞市| 旺苍县| 唐河县| 襄汾县| 卫辉市| 颍上县| 晋州市| 林州市| 庆阳市| 株洲市| 荥经县| 新绛县| 余庆县| 门源| 太湖县| 阿坝县| 彰化县| 香河县| 上犹县| 阳新县| 册亨县| 普兰县| 米泉市| 丰宁| 合水县| 基隆市| 巴林左旗| 阿拉善盟| 浮山县| 张掖市| 岳阳县| 福州市| 体育|