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
          主站蜘蛛池模板: 临桂县| 新化县| 揭东县| 高清| 麻阳| 兰坪| 婺源县| 彝良县| 枣阳市| 板桥市| 兴安盟| 于都县| 保康县| 南漳县| 中方县| 留坝县| 乐至县| 旬邑县| 剑河县| 泰宁县| 南华县| 德化县| 油尖旺区| 正宁县| 罗江县| 含山县| 涞源县| 博乐市| 长泰县| 嘉义市| 哈尔滨市| 故城县| 南川市| 南和县| 临高县| 盐池县| 闻喜县| 章丘市| 微山县| 安陆市| 安化县|