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
          主站蜘蛛池模板: 潼南县| 乌鲁木齐市| 长泰县| 石屏县| 芷江| 绿春县| 长海县| 汕头市| 观塘区| 抚宁县| 邵阳市| 惠来县| 宁都县| 古田县| 大田县| 桦甸市| 尚义县| 禄劝| 册亨县| 平武县| 沙洋县| 鸡东县| 长岭县| 和林格尔县| 公安县| 襄垣县| 噶尔县| 沅江市| 顺平县| 灵宝市| 卓尼县| 固镇县| 泸定县| 达日县| 涿鹿县| 东乡县| 高要市| 上林县| 雅江县| 沙坪坝区| 华蓥市|