Ant學習筆記

来源:http://www.cnblogs.com/jmcui/archive/2017/07/20/6957404.html
-Advertisement-
Play Games

前言:這段時間在學習Ant,發現這是一個很強大的構建工具。你可能使用了很長一段時間,才發現Ant能做數不完的事。總之,個人覺得,Ant學習門檻低,入門簡單,能大概看懂程式,寫一些簡單的腳本即可,剩下在遇到的時候邊做邊學就可以了。另外,博主資歷尚淺,有說的不對的地方,還請大家不吝指教。 1、Ant是一 ...


    前言:這段時間在學習Ant,發現這是一個很強大的構建工具。你可能使用了很長一段時間,才發現Ant能做數不完的事。總之,個人覺得,Ant學習門檻低,入門簡單,能大概看懂程式,寫一些簡單的腳本即可,剩下在遇到的時候邊做邊學就可以了。另外,博主資歷尚淺,有說的不對的地方,還請大家不吝指教。

    

1、Ant是一個Apache基金會下的跨平臺的構建工具,它可以實現項目的自動構建和部署等功能。它具有跨平臺、使用簡單、語法清晰、功能強大等特點   2、下載和安裝:http://ant.apache.org/,添加環境變數ANT_HOME,指向根目錄D:\hybirs630\hybris\bin\platform\apache-ant-1.9.1、安裝完成後,進入控制台界面,輸入 ant -version檢查是否安裝成功。   3、Ant的構建文件是通過XML編寫的,預設名稱是build.xml.  
<?xml version="1.0"?>
<project name="helloWorld">
       <target name="sayHelloWorld">
              <echo message="Hello,Amigo"/>
       </target>
</project>
備註:(在文件的存在目錄執行ant sayHelloWorld, ant 預設尋找文件build.xml,若文件不為build.xml,則執行ant –f hello.xml sayHelloWorld、ant –buildfile hello.xml sayHelloWorld或ant –file hello.xml sayHelloWorld)   4、Ant的關鍵元素project、target、property、task       1、project元素(至少包含一個,可以包含多個target)  、 name屬性、 default屬性(用於指定project預設執行時所執行的target的名稱)、basedir屬性(用於指定路徑的位置。沒有指定,使用Ant的構件文件的附目錄作為基準目錄)
<?xml version="1.0"?>
<project name="projectStudy" default="sayBaseDir" basedir="D:\hybirs630\hybris\bin\platform\apache-ant-1.9.1">
       <target name="sayBaseDir">
              <echo message="The base dir is: ${basedir}"/>
       </target>
</project>

 

2、ant -projecthelp(列出當前ant可執行的所有命令) 3、target元素(是Ant的基本執行單元,它可以包含一個或多個具體的任務,多個target可以存在相互依賴關係)、name屬性(指定名稱)、depends屬性(描述target之間的依賴關係,以,間隔,順序執行,被依賴的target優先執行)、if/unless屬性(驗證屬性是否存在,若存在,則執行/不執行)、description屬性(target功能的簡短描述與說明)
<?xml version="1.0"?>
<project name="targetStudy">
       <target name="targetA" if="ant.java.version">
              <echo message="Java Version: ${ant.java.version}"/>
       </target>
       <target name="targetB" depends="targetA" unless="amigo">
              <description>
                            a depend example!
              </description>
              <echo message="The base dir is: ${basedir}"/>
       </target>
</project>

 

4、property元素(參量或者參數的定義),若要在外部引入某文件,例如build.properties文件,可以通過如下內容將其引入:<property file=” build.properties”/> 同時,Ant還提供了一些它自己的內置屬性,如下: basedir:project基目錄的絕對路徑. ant.file:buildfile的絕對路徑,如上面的各例子中,ant.file的值為E:"build.xml; ant.version:Ant的版本,在本文中,值為1.7.0; ant.project.name:當前指定的project的名字,即前文說到的project的name屬性的值; ant.java.version:Ant檢測到的JDK的版本。   備註:ant中若引用property或者它的內置屬性,用${}括弧起來引用。    
<?xml version="1.0"?>
<project name="propertyStudy" default="example">
  <property name="name" value="amigo"/>
  <!--讀取屬性文件的屬性配置-->
  <property file="foo.properties"/>
  <property name="age" value="25"/>
   <target name="example">
        <echo message="name: ${name}, age: ${age}"/>
   </target>
</project>

 

5、Ant的任務介紹   1、輸出信息
<echo message="xxx"/>
<echo>yyyy</echo>     
  2、copy任務   該任務主要用來對文件和目錄的複製功能。舉例如下:   Eg1.複製單個文件:<copy file="file.txt" tofile="copy.txt"/>       Eg2.對文件目錄進行複製:      <copy todir="../newdir/dest_dir">              <fileset dir="src_dir"/>   </copy>       Eg3. 將文件複製到另外的目錄:    <copy file="file.txt" todir="../other/dir"/>   <copyfile src="test.java" dest="subdir/test.java"> dest:代表目標目錄   Eg4.拷貝一堆文件到一個目錄 <copy todir="../dest/dir">     <fileset dir="src_dir">        <exclude name="**/*.java">    </fileset> </copy> Eg5.拷貝一個目錄下的東西到另一個目錄下(includes加入,excludes排除,即排除這些之外的東西都要加入) <copy src="${src}/resources" dest="${dist}" includes="**/*.java" excludes="**/Test.java"/>   2、delete任務   對文件或目錄進行刪除,舉例如下:       Eg1. 刪除某個文件:<delete file="photo/amigo.jpg"/> Eg2. 刪除某個目錄:<delete dir="photo"/>  Eg3. 刪除所有的備份目錄或空目錄:(也可以使用include和exclude)           <delete includeEmptyDirs="true">                <fileset dir="." includes="**/*.bak"/>         </delete>   3.       mkdir任務              創建目錄。eg:<mkdir dir="build"/>   4、move任務    移動文件或目錄,舉例如下:   Eg1. 移動單個文件:<move file="fromfile" tofile=”tofile”/> Eg2. 移動單個文件到另一個目錄:<move file="fromfile" todir=”movedir”/> Eg3. 移動某個目錄到另一個目錄:         <move todir="newdir">                <fileset dir="olddir"/>         </move>   5、重命名任務 <rename src="foo.jar" dest="ant-${version}.jar"/>     6、Touch的使用 如果文件不存在,創建文件,如果存在,更改最後訪問時間為系統時間 <touch file="myfile"/>   7、打Jar包 <target name="build" depends="compile">     <jar destfile="${hello_jar}" basedir="${dest}"/> </target>   8、壓縮zip文件 <zip destfmlile="${dist}/manual.zip"        basedir="htdocs/manual"        includes="api/**/*.html"        excludes="**/todo.html"/>   6、利用Ant構建和部署Java工程          參考我的另一篇博客:http://www.cnblogs.com/jmcui/p/6946777.html

 

7、一份Ant的API文檔:http://files.cnblogs.com/files/jmcui/ant%E4%BD%BF%E7%94%A8%E5%B8%AE%E5%8A%A9%E6%89%8B%E5%86%8C_%E4%B8%AD%E6%96%87.pdf


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • ng 配置@ngModule({ imports: [ BrowserModule ], //導入模塊 declarations: [ AppComponent ], //導入組件 providers: [ ] //導入服務(service) }) 在app主模塊下 app.module 引入大模塊 ...
  • 大家都知道在css中的單位,一般都包括有px,%,em等單位,另外css3新增加一個單位rem。 其中px,%等單位平時在傳統佈局當中使用的比較頻繁,大家也比較熟悉,不過px單位在進行自適應佈局的過程當中則會有些力不從心,大部分的解決方案是使用%為單位配合@media媒介查詢來進行自適應佈局。不過還 ...
  • 首先要能獲取datagrid 的row對象 即:var row = $('#datagrid').datagrid('getData').rows[index]; 之後我們就可以通過類似row.name(欄位名稱)來獲取row各個欄位(列)的值了。 ...
  • 具體代碼如下: ...
  • 1.Xml添加監聽屬性,這裡添加的doClick。 在Activity中添加doClick實現方法。Activity中實現的方法要和XML添加的屬性名相同,不建議實際開發中使用。 2.匿名內部類方式實現。 3.自定義點擊事件實現。 4.Activity繼承View.OnClickListener,由 ...
  • 時間設置 查看系統當前日期/時間: date -R 查看系統硬體時鐘: hwclock --show 設置硬體時間: hwclock --set --date="07/18/17 20:55" 用硬體時間同步系統時間: hwclock --hctosys 時區設置 tzselect 選擇 Asia ... ...
  • 一、終端列印 [root@cai ~]# echo welcome to bash! welcome to bash! [cairui@cai ~]$ echo 'welcome to bash!' welcome to bash! [cairui@cai ~]$ echo "welcome to ...
  • 一、最小化原則 (1)安裝最小化 (2)開機啟動服務最小化 (3)操作最小化 (4)許可權最小化 (5)配置參數合理,不要最大化 二、埠優化 遠程登錄的埠預設是22號埠,這是大家都知道的。所以為了安全著想,我們要修改伺服器遠程連接埠,這樣黑客就不好破解你的linux伺服器。同時,預設登錄的用戶 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...