用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>
相關文章
- Jenkins實現持續整合 使用Ant指令碼構建ios專案Jenkins指令碼iOS
- esbuild 構建油猴指令碼UI指令碼
- shell-----構建基本指令碼指令碼
- 構建dubbo分散式平臺-maven構建ant-framework核心程式碼Base封裝分散式MavenFramework封裝
- Gradle系列之構建指令碼基礎Gradle指令碼
- vue 構建環境切換指令碼Vue指令碼
- iOS自動構建打包釋出指令碼iOS指令碼
- Vue.js原始碼解析-從scripts指令碼看vue構建Vue.js原始碼指令碼
- oracle建庫指令碼Oracle指令碼
- 不得不學之「 Gradle」 ③ 構建指令碼基礎Gradle指令碼
- 使用node構建檔案重新命名指令碼工具指令碼
- 【構建】start.sh指令碼中變數被maven profile構建過程替換指令碼變數Maven
- 修改gradle指令碼,加速spring4.1原始碼編譯構建速度Gradle指令碼Spring原始碼編譯
- Workbox5+Webpack4構建離線應用Web
- jacoco 使用 ant 構建後沒有輸出任何東西
- 如何使用Docker構建執行時間較長的指令碼Docker指令碼
- 使用 Vite 外掛開發構建 Tampermonkey 使用者指令碼Vite指令碼
- 010 Rust 網路程式設計,cargo 構建指令碼介紹Rust程式設計Cargo指令碼
- 預處理指令、構建大型程式
- 構建dubbo分散式平臺-maven構建ant-framework框架的pom.xml檔案配置分散式MavenFramework框架XML
- 2.4.12 Step 11: 執行指令碼來構建資料字典檢視指令碼
- 使用JHipster構建Spring和React構建電子商務應用程式原始碼 -DEVSpringReact原始碼dev
- nGrinder中快速編寫groovy指令碼01-指令碼結構指令碼
- Git(4) 子樹拉取指令碼Git指令碼
- 用webpack4從零開始構建react腳手架WebReact
- 4 種用於構建嵌入式 Linux 系統的工具Linux
- CMake構建學習筆記4-libjpeg庫的構建筆記
- 構建 API 應用API
- Shell指令碼應用(三)指令碼
- 用VIPER構建iOS應用iOS
- Judo:使用無程式碼構建原生應用體驗
- [20220309]完善shp4.sql指令碼.txtSQL指令碼
- 構建之法閱讀筆記4筆記
- webpack 流程解析(4): 開始構建Web
- 構建自己的React:(4)Components and StateReact
- Apache Kylin 入門 4 – 構建 ModelApache
- Apache Kylin 入門 4 - 構建 ModelApache
- Webpack4+ 多入口程式構建Web
- 使用Java和Neo4j構建圖資料庫應用Java資料庫