用Ant構建指令碼(4)
用Ant構建指令碼(4)
五、Ant相關
1、標識過濾器
一個專案有一套標識,如果發現當一個檔案被拷貝時,或許能自動進行擴充。當在這個支援任務中選擇了過濾器-拷貝行為,才支援這種方式。在buildfile中,通過過濾器任務或許能設定它。
因為這能導致很大的潛在危害,在<filter>任務中標識的標識名在檔案中必須以@token@的形式給出。這個標識語法匹配其它建立的系統的語法,該系統完成過濾並保留足夠地程式和指令碼語言的相交部分,如同文獻系統。
※※注意:如果在一個檔案中出現了帶有@token@的標識,但卻又沒有任何過濾器與其相聯絡,這將不發生改變。因此,沒有避免的方法可以用,但是隻要你選擇了合適的標識名,這不會產生任何問題。
警告:如果你拷貝二進位制檔案用過濾器來開啟,你會被中斷。因為這個特徵只適用於文字檔案。
2、象路徑一樣的結構
你可以指定PATH-和CLASSPATH-type引用,通過用“:”和“;”作為分隔符。Ant會為當前作業系統轉換分隔符為正確的字元。
無論什麼情況下,象路徑一樣的值是需要指定的,元素巢狀也可以用。下面這個是通常的結構:
<classpath>
<pathelement path=”%{classpath}”/>
<pathelement location=”lib/helper.jar”/>
</classpath>
屬性的位置指定了一個單個的檔案或羨慕基本目錄的相關目錄,路徑屬性可用帶冒號或分號分隔開的位置列表。它需要預先指定,換句話說,帶位置屬性的多個元素都應該被指定。
另外,通過巢狀的<dirset>、<fileset>和<filelist>元素,能指定DirSet、FileSet和FileList。
<classpath>
<pathelement path=”${classpath}”/>
<fileset dir=”lib”>
<include name=”**/*.jar”/>
</fileset>
<pathelement location=”classes”/>
<dirset dir=”${build.dir}”>
<include name=”apps/**/classes”/>
<exclude name=”apps/**/*Test*”/>
</dirset>
<filelist refid=”third-party_jars”>
</classpath>
如果你想為幾個任務使用同樣的路徑結構,你可以在同一級的target中用<path>元素來定義它,然後通過id屬性來引用它。
例如:
<path id=”base.path”>
<pathelement path=”${classpath”/>
<fileset dir=”lib”>
<include name=”**/*.jar”/>
</fileset>
<pathelement location=”classes”/>
</path>
<path id=”tests.path”>
<path refid=”base.path”/>
<pathelement location=”testclasses”/>
</path>
3、命令列引數
有幾個帶引數的任務可以在命令列中得到處理。指定包含空格符的引數使它變得更容易,巢狀的arg元素也能使用。
value,一個單個的命令列引數,能包含空格;
file,作為命令列引數的檔名,執行時以檔案的絕對名來代替;
path,作為象路徑的字串來處理,作為單個的命令列引數,可以使用“;”或“:”來作為分隔符,Ant會把它轉換為本地平臺的習慣。
line,命令列引數的空格定界線列表。
如果可能,儘量避免使用命令列方式。
4、參考
buildfile元素的id屬效能用來引用它們自己。這有助於到處複製一個XML小片斷,例如:
<project…>
<target…>
<rmic…>
<classpath>
<pathelement location=”lib/”/>
<pathelement path=”${java.class.path}/”/>
<pathelement path=”${additional.path}”/>
</classpath>
</rmic>
</target>
<target…>
<javac…>
<classpath>
<pathelement location=”lib/”/>
<pathelement path=”${java.class.path}/”/>
<pathelement path=”${additional.path}”/>
</classpath>
</javac>
</target>
</project>
可以寫成如下:
<project…>
<path id=”project.class.path”>
<pathelement location=”lib/”/>
<pathelement path=”${java.class.path}/”/>
<pathelement path=”${additional.path}”/>
</path>
<target…>
<rmic…>
<classpath refid=”project.class.path”/>
</rmic>
</target>
<target…>
<javac…>
<classpath refid=”project.class.path”/>
</javac>
</target>
</project>
相關文章
- 用Ant構建指令碼(2)指令碼
- 用Ant構建指令碼(1)指令碼
- Window下采用ant 指令碼構建Android自動化編譯指令碼Android編譯
- Jenkins實現持續整合 使用Ant指令碼構建ios專案Jenkins指令碼iOS
- 用ANT構建java可執行程式 (轉)Java行程
- 利用ant指令碼 自動構建svn增量/全量 系統程式升級包指令碼
- shell-----構建基本指令碼指令碼
- esbuild 構建油猴指令碼UI指令碼
- ant指令碼呼叫.bat檔案指令碼BAT
- 學習Ant編譯指令碼編譯指令碼
- ANT批量執行Jmeter指令碼JMeter指令碼
- 構建dubbo分散式平臺-maven構建ant-framework核心程式碼Base封裝分散式MavenFramework封裝
- (九) 構建dubbo分散式平臺-maven構建ant-framework核心程式碼Base封裝分散式MavenFramework封裝
- vue 構建環境切換指令碼Vue指令碼
- 轉載 利用ANT構建CI系統
- 利用 ant 指令碼修改專案包名指令碼
- Gradle系列之構建指令碼基礎Gradle指令碼
- iOS自動構建打包釋出指令碼iOS指令碼
- Ant 編譯、打包 build.xml 指令碼模板編譯UIXML指令碼
- (十) 構建dubbo分散式平臺-maven構建ant-utils工具專案分散式Maven
- ant構建時出現錯誤解決方案
- Android 配置 Ant 指令碼之程式碼混淆和優化Android指令碼優化
- 通過ant指令碼編譯打包android工程指令碼編譯Android
- Vue.js原始碼解析-從scripts指令碼看vue構建Vue.js原始碼指令碼
- 使用node構建檔案重新命名指令碼工具指令碼
- 用程式碼構建星辰大海
- 【構建】start.sh指令碼中變數被maven profile構建過程替換指令碼變數Maven
- oracle建庫指令碼Oracle指令碼
- ant指令碼實現的Android自動編譯指令碼Android編譯
- 指令碼的故事(4)指令碼
- 不得不學之「 Gradle」 ③ 構建指令碼基礎Gradle指令碼
- Jenkins構建指令碼中啟動tomcat關鍵Jenkins指令碼Tomcat
- 建庫指令碼下載指令碼
- 構建dubbo分散式平臺-maven構建ant-framework框架的pom.xml檔案配置分散式MavenFramework框架XML
- Workbox5+Webpack4構建離線應用Web
- 如何使用Docker構建執行時間較長的指令碼Docker指令碼
- (七) 構建dubbo分散式平臺-maven構建ant-framework框架的pom.xml檔案配置分散式MavenFramework框架XML
- Android自動打包、簽名、優化、上傳ANT指令碼Android優化指令碼