熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> Java開源技術 >> 正文

ant - java 構建工具 - hello ant

2013-11-23 20:21:11  來源: Java開源技術 

  管理你的代碼doc文件編譯配置等開發工作你是怎末做的自己管理源目錄編譯文件copy實施在window寫bat在unix寫shell?
  
  可惜我不怎末會寫所以我制作一個ejb的過程是這樣的寫代碼>寫個bat編譯代碼>組織文件(ejbjarxmljbossxml)>壓縮文件生成jar文檔>實施(還有同樣的測試過程)(為甚末不用jbuild?)
  
  這中間每次修改都要經過重復的無數次手工copypaste過程好累好花時間可我確實不想去學腳本編寫unixlinux下我還得重學太累
  
  如果你和我一樣希望自動執行預定義的動作卻又不想太累那末我覺得ANT工具不錯它可以以相同的用法用在不同平台(跨平台)它是JAVA做的免費的開源的據說網上已經成了事實的JAVA構建標准還聽說高手都用它 ^_^
  
  我花了天時間才掌握了它的基本用法我希望你能通過我的文章和試驗花半天時間就掌握它
  
  內容
  
  下載安裝
  hello ant
  hello ant 進級
  參考及下載
  下載安裝
  
  又下載?又是一大堆參數變量? :( 它是apache的java子項目jakarta的子項目你可以選擇當前的版本目前我是window版以下就用它講
  
  解壓後ant_home用來方便訪問並確保你也設置了java_home
  set ant_home=D:\java\kit\ant\jakartaant  這是我的目錄
  
  就這些簡單吧
  
  hello ant
  
  我們要開發一個java類其內容只有一句輸出hello ant字符串並使用ant完成編譯和運行工作這個例子只是為了跑通ant不附加多余的東西
  
  下圖為文件組織請建立相應的目錄並編寫HelloAntjava
  
 educitycn/img_///gif>

  按照人家老外的文件組織規則咱也照搬
  helloantHelloAntjava
  package helloant;
  
  public class HelloAnt{
  public static void main(String[] args){
    Systemoutprintln(hello antant 的第一次接觸好棒!);
  }
  }
  在項目根目錄(helloant\)寫個文件ant執行配置文件buildxml
  
  buildxml
  <?xml version= encoding=GB ?>
  
  <! 一個項目可包含很多任務組(target) >
  <project default=main basedir=>
  
  <! 項目中的一個任務組可包含很多任務(task:javacjava) >
  <target name=main>
  
    <!編譯>
    <javac srcdir=src\main\hello\ant destdir=build\classes/>
  
    <!運行>
    <java classname=helloantHelloAnt>
      <classpath>
        <pathelement path=build\classes/>
      </classpath>
    </java>
  
  </target>
  </project>
  ok一切大功告成還沒有運行它
  
  dos下進入helloant的目錄即buildxml所在的目錄我們要用ant工具執行它 執行: %ant_home%/bin/ant file buildxml   用ant工具執行當前目錄下的配置文件buildxml 或 ant file buildxml          你如果設置%ant_home%/bin到path中這次ok了這是答案命令提示符窗口
  D:\temp\helloant>ant file buildxml
  Buildfile: buildxml
  
  main:
  [javac] Compiling source file to D:\temp\helloant\build\classes
  [java] hello antant 的第一次接觸好棒!
  
  BUILD SUCCESSFUL
  Total time: seconds
  D:\temp\helloant> 
  
  檢查一下build/classes目錄看到編譯過的文件就在這裡:
  build/classes/hello/ant/HelloAntclass
  
  hello ant 進級
  
  (此段比較廢話可以略過)
  你也許會說這末簡單的工作寫個批處理不就得了又xml又ant的把我的時間都浪費完了我用jbuild或webShpere不就得了怎末說你才明白呢?反正網上開源項目大多數都用ant你總不能給人家個*jpx吧而且這樣的工具太貴受不了(當然用D的兄弟不怕^_^ )而且ant可以讓你明確的管理和自動化所有的東西:編譯實施測試稍微麻煩一點點但節約你以前花在零碎的copypaste上的時間而且我發現管理代碼的質量有所提高
  
  我們要改進buildxml讓它做更多的事情
  
  定義全局變量
  初始化主要是建立目錄
  編譯 (已有)
  打包為jar
  建立API documentation
  生成distribution產品
  凡事都講究平衡你要ant給你做更多事當然要累一點點不過只用累一次以後的代碼修改後的構建都是一鍵式完成我們制作一個hello的簡單例子你可以自己做jee的練習
  
  我們要擴充目錄結構使它更像回事
  
  ant處理編譯之前的目錄
  
 educitycn/img_///gif>

  ant處理之後的目錄
  
educitycn/img_///gif>

  圖中\src\docs\lib是自己組織的文件結構\build\dist是ant動態生成的成品
  
  \src           源文件java源script源jsp源xml配置
  \src\main     java源
  \src\script   windowunixliunx的執行script我們的簡單只有一個
         runbat: java helloantHelloAnt
  
  \docs        手寫說明文檔
  \lib          程序所需類庫的jar比如jeejarmailjar
  
  \build        用ant動態生成的構建目錄
  \build\classes 編譯的類文件
  \build\docs     copy \docs的手寫說明文檔和ant生成的api文檔
  \build\lib      放置我們自己的HelloAntclass打包成品helloantjar
  
  \dist\bin    copy \src\script 得執行文件
  \dist\docs   copy \build\docs 的文檔
  \dist\lib     除了copy \build\lib下的helloantjar外
               還應copy \lib的程序所需jar這裡我們沒有
  以上是我學老外的文件組織大家可以按照自己的愛好組織
  
  我們編寫必要的文件
  
  helloant HelloAntjava
  已有 
  \src\scriptbat
  @echo off
  echo ========================================================
  echo  請先設置 Environment
  echo
  echo  JAVA_HOME: %JAVA_HOME%
  echo ======================================================
  
  %java_home%\bin\java classpath \lib\helloantjar helloantHelloAnt
  
  pause
  
  \docs\l 隨便寫一個手寫的文檔
  hello ant 軟件項目手冊docs
  
  訪問api文檔
  
  \buildxml 配置文件
  <?xml version= encoding=GB ?>
  <!
  =======================================================================
   helloant 項目 學習ant工具的第個build file
  
   參照ant的jakartaantalpha的buildxml
  
   Copyright (c) The Neusoft Software Foundation All rights
   reserved
  
  =======================================================================
  >
  
  <!
  文檔結構為:
  <project>
    <property/>        全局變量的定義
    <property/>
  
    <target name=>     任務組(tasks)
      <javac></javac>    一項javac任務
      
      <oneTask></ontTask>  一項其它任務
    </target>
  
    <target name=>
      <javac></javac>
      
      <oneTask></ontTask>
    </target>
  </project>
  
  project代表一個項目
  default:運行到名稱為dist的target(任務組)
  basedir:基准路徑
  >
  <project default=dist basedir=>
  
  <!
  ===================================================================
   定義屬性(property tasks)
   最好把用到的路徑呀名稱呀都在這裡定義成全局變量
   例定義
     <property name=a value=hello/>
   以後就可以這樣用它
     <property name=b value=${a}/b/>
   現在:b==hello/b
  ===================================================================
  >
  
  <!主要的系統環
From:http://tw.wingwit.com/Article/program/Java/ky/201311/28359.html
  • 上一篇文章:

  • 下一篇文章:
  • 推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.