您可以使用“:”和“;”作為分隔符,指定路徑和類路徑之類的引用。Ant會將分隔符轉換為當前系統使用的分隔符。
當您需要指定類似於路徑的值時,可以使用嵌套元素。壹般形式是
& lt類路徑& gt
& ltpath element path = " { class path } "/& gt;
& ltpath element location = " lib/helper . jar "/& gt;
& lt/class path & gt;
location屬性指定相對於項目基目錄的文件和目錄,而path屬性接受由逗號或分號分隔的位置列表。path屬性通常用作預定義的路徑。在其他情況下,應該使用多個位置屬性。
為了簡單起見,classpath標簽支持它自己的路徑和位置屬性。所以:
& lt類路徑& gt
& ltpath element path = " { class path } "/& gt;
& lt/class path & gt;
可以由簡來寫:
& lt類路徑path = " { class path } "/& gt;
妳也可以使用
& lt類路徑& gt
& ltpath element path = " { class path } "/& gt;
& lt文件集dir="lib " >
& ltinclude name="**/*。jar "/>;
& lt/fileset & gt;
& ltpath element location = " classes "/& gt;
& lt/class path & gt;
上面的示例構造了壹個路徑,其路徑值包括:{classpath},後跟lib目錄中的所有jar文件,再後跟classes目錄。
如果妳想在多個任務中使用相同的類路徑結構,妳可以使用
類似路徑的結構可以包括對另壹個類似路徑的結構的引用(通過嵌套
& ltpath id = " base.path " & gt
& ltpath element path = " { class path } "/& gt;
& lt文件集dir="lib " >
& ltinclude name="**/*。jar "/>;
& lt/fileset & gt;
& ltpath element location = " classes "/& gt;
& lt/path & gt;
& ltpath id = " tests.path " & gt
& ltpath refid = " base . path "/& gt;
& ltpath element location = " test classes "/& gt;
& lt/path & gt;
上面提到的關於
& ltpath id = " tests.path " & gt
& ltpath refid = " base . path "/& gt;
& ltpath element location = " test classes "/& gt;
& lt/path & gt;
可以寫成:
& ltpath id = " base . path " path = " { class path } "/& gt;
兩個文件集
1)文件集是壹組文件,可以在基本目錄樹下找到,並與指定的模式集和選擇器相匹配。文件集的結構如下所示:
& lt文件集dir = " $ { server.src } " & gt
& ltpatternset/>;
& lt選擇器/>;
& lt/fileset & gt;
2)patternset壹般作為FileSet的子元素,幫助過濾文件。可以包含以下子元素:include、exclude、include、exclude、includesfile、excludesfile。
文件集隱式包含壹個patternset元素,因此您可以在文件集中直接包含模式集中的元素,例如
下面的patternset包含std子目錄下的java文件,如果由professional定義的話,也包含prof中的java文件,但是不包含名稱中帶有Test的文件。
& ltpatternset id = " sources " & gt
& ltinclude name="std/**/*。Java "/>;
& ltinclude name="prof/**/*。Java " if = " professional "/& gt;
& ltexclude name = " * */* Test * "/& gt;
& lt/pattern set & gt;
3)選擇器壹般用作文件集的子元素,幫助過濾文件。
常用的巖心選擇器有:
& lt包含& gt-允許您選擇包含指定字符串的文件。
& lt日期& gt-用於選擇在特定時間之前或之後修改的文件。
& lt依賴& gt-選擇比其他地方的同等文件修改時間更近的文件
& lt深度& gt-用於選擇具有指定目錄深度的文件。
& lt不同& gt-選擇與別處不同的文件
& lt文件名& gt-用於選擇文件名與特定模式匹配的文件。等同於包含和排除的Patternset。
& ltpresent & gt-用於選擇某個位置存在或不存在的文件。
& ltcontainsregexp & gt-用於選擇與指定正則表達式匹配的文件。
& ltsize & gt-用於選擇大於或小於指定大小的文件。
& lttype & gt-選擇常規文件或目錄。
& lt修改後的& gt-如果配置的算法的返回值不同於緩存中存儲的值,請選擇文件。
& lt簽名選民& gt-選擇已簽名的文件,也可以選擇是否有特定名稱的簽名。
& ltscriptselector & gt-使用BSF或JSR 223腳本語言創建自己的選擇器
& lt可讀& gt-選擇具有可讀屬性的文件。
& lt可寫的& gt-選擇具有可寫屬性的文件。
例如,選擇所有包含腳本的html文件。
& lt文件集目錄="${doc.path} "包含="**/*。html " & gt
& ltcontains text = " script " case sensitive = " no "/& gt;
& lt/fileset & gt;
例如,選擇1年1月和2001年1月之前修改的所有JAR文件。
& lt文件集目錄="${jar.path} "包含="**/*。jar " & gt
& ltdate datetime = " 01/01/2001 12:00am " when = " before "/>;
& lt/fileset & gt;
例如,選擇所有滿足正則表達式的txt文件。
& lt文件集dir="${doc.path}" includes="*。txt " & gt
& ltcontainsregexp表達式="[4-6]\。[0-9]"/>
& lt/fileset & gt;
以下選擇器相當於patternset:
& lt文件集dir = " $ { server . src } " case sensitive = " yes " & gt;
& lt文件名名稱="**/*。Java "/>;
& ltnot & gt
& ltfilename name = " * */* Test * "/& gt;
& lt/not & gt;
& lt/fileset & gt;
等於
& lt文件集dir = " $ { server . src } " case sensitive = " yes " & gt;
& lt文件名名稱="**/*。Java "/>;
& ltfilename name = " * */* Test * " negate = " true "/& gt;
& lt/fileset & gt;
等於
& lt文件集dir = " $ { server . src } " case sensitive = " yes " & gt;
& ltinclude name="**/*。Java "/>;
& ltexclude name = " * */* Test * "/& gt;
& lt/fileset & gt;
選擇器容器可以包含其他選擇器。常用的選擇器容器有:
& lt並且& gt
& lt包含& gt
& lt自定義& gt
& lt日期& gt
& lt依賴& gt
& lt深度& gt
& lt文件名& gt
& lt多數& gt
& lt無& gt
& ltnot & gt
& lt或者& gt
& ltpresent & gt
& lt選擇器& gt
& ltsize & gt
例如,選擇壹個大於4096字節的JAR文件,並且自上壹千年以來沒有更新過。
& lt文件集dir="${dist}" includes="**/*。jar " & gt
& lt並且& gt
& ltsize value = " 4 " units = " Ki " when = " more "/& gt;
& ltdate datetime = " 01/01/2001 12:00am " when = " before "/>;
& lt/和& gt
& lt/fileset & gt;
結束!
作者:iTech
資料來源:blogs.com/.
歡迎加入qq交流群172758282討論build/release/Jenkins!
歡迎加入qq交流群426095548討論linux!類別:BuildRelease,BuildTools綠色通道:好文章要密切關註我的收藏,聯系我。