小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

ant fileset用法

 KILLKISS 2012-09-20
fileset用來定義目錄位置及操作適用于該目錄下的那些子目錄或文件
1. 拷貝單個文件到指定目錄下。
例:<copy todir="${basedir}/new" file="${basedir}/old/old1.txt1">
將${basedir}/old/old.txt文件拷貝到${basedir}/new下

2. 拷貝一批文件到指定目錄下,例:<copy todir="${basedir}/new">
           <fileset dir="${basedir}/old">
              <include name="old1.txt" />
              <include name="old2.txt" />
              <exclude name="old8.txt" />
          </fileset>
       </copy>
      這里fileset定義的是原文件的組成形式,<include/>子屬性表示包括,<exclude/>子屬性表示排除,很簡單,通過他們組合實現(xiàn)多文件的篩選,當然我這個例子用得很傻。比如
                <include name="appgen/**"/>
                <include name="ibatis/**"/>
                <exclude name="**/*.log"/>
      拷貝appget目錄和ibatis目錄下除了.log文件以外的其它所有文件和子目錄。

      可以把<fileset/>簡寫成<fileset dir="${basedir}/old" includes="old1.txt,old2.txt" />,includes可以理解成include的復數(shù)形式,包含多個文件時用逗號隔開,excludes也一樣。

3. 拷貝一個目錄到指定目錄下
例:<copy todir="${basedir}/new">
           <fileset dir="${basedir}/old">
             <include name="appgen" />
             <include name="appgen/" />
             <include name=appgen/**" />
             <include name="appgen/***" />
           </fileset>
       </copy>
      同樣使用<fileset/>屬性,name指定目錄名,不過這里要分兩種情況,用<include/>子屬性和不用<include/>子屬性.
      若使用<include/>, 又要分三種情況
          若是“appgen”,則只會拷貝名為appgen的空目錄過去,它里面的文件和子目錄則不會拷貝。
          若是“appgen/”,或“appgen/**”,則會把整個appgen目錄拷貝過去,包括里面的文件和子目錄。
          若是“appgen/*”,則只會把該目錄和該目錄下第一級子目錄的所有東西拷貝過去,而不會拷貝第二級和第二級以下的。注:“appgen/*”這兒是一個*號,*號若大于兩個,也跟一個*號是同樣效果。比如“appgen/*”和“appgen/****”都只拷貝appgen目錄下第一級子目錄。

注:若appeng這個目錄本身就是個空目錄(就是不存在),無論怎么寫,這個空目錄都不會被拷貝。也就是說,copy操作不會產(chǎn)生創(chuàng)建空目錄的作用,要想創(chuàng)建空目錄,只有用mkdir。

      若不使用任何<include>屬性,如
           <fileset dir="${basedir}/old">
           </fileset>
      則會拷貝${basedir}/old下的所有文件和子目錄。

注:使用<exclude/>排除目錄時,目錄名必須寫成“appgen/”或“appgen/**”形式,否則不會生效。

      以上是三種拷貝到目錄的種類,注意如果計算機中沒有todir指定的路徑,ant將會自動創(chuàng)建這個路徑。

4. 拷貝單個的文件:
〈copy tofile="old.txt" file="new.txt" /〉就這么簡單就行了。
當然也可以寫成

  <copy tofile="${basedir}/new/new.txt">
     <fileset dir="${basedir}/old" includes="old.txt" />
  </copy>

      這里includes就只能寫一個文件,不能寫上多個文件,因為不能將多個文件復制到一個文件中去,所以這樣麻煩的寫法是沒有意義的。?這個地方還有待去驗證一下.

      復制肯定還要涉及到同名覆蓋的問題,ant在copy類的API中說明:Files are only copied if the source file is newer than the destination file,這里的newer是指文件的修改時間,即使你在修改時文件內(nèi)容沒有任何變化,只是導致修改時間變了,ant同樣會覆蓋同名文件,也就是說,ant不會檢查文件內(nèi)容。

      對于是復制目錄的情況,由于目錄沒有修改時間,ant還是通過檢查目錄內(nèi)文件的修改時間來決定是否覆蓋的,若目錄內(nèi)某文件修改時間有變化,則會覆蓋這個文件,而不是整個目錄。

如果要強行覆蓋,<copy/>有個overwrite屬性,默認為false,改成true就行了。
Ant真是太方便了,以前都沒注意到它。功能很強大,能創(chuàng)建數(shù)據(jù)庫,配置服務器,部署發(fā)布應用……只需要寫好build.xml文件,剩下的就交給ant來“安裝”你的WEB應用了。
以上就這些:
您也可以去apache ant項目里去看一下 fileset的用法:

    本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多