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

使用ant編譯打包應用程序

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

  將一個簡單的類(Sample)進行編譯打包運行(傳參數)

 源文件

  java源文件Samplejava

  package powerwind;

   

  import javaxswing*;

   

  public class Sample {

  public static void main(String[] args) throws Exception {

  if (argslength > )

  JOptionPaneshowMessageDialog(null args[]);

  else

  JOptionPaneshowMessageDialog(null HelloWorld);

  }

  }

   

   

  ant文件buildxml

  注意encoding=GBK 設置後才可以有中文注釋

   

  <?xml version= encoding=GBK ?>

  <! ===================================== >

  <! 周健興 // >

  <! ===================================== >

  <project name=sample default=run basedir=>

  <description>用於學習的簡單ant工程文件</description>

  <!屬性設置>

  <property environment=env />

  <property file=buildproperties />

  <property name=srcdir value=${basedir}/src />

  <property name=javalibdir value=${envJAVA_HOME}/lib />

  <property name=builddir value=${basedir}/build />

  <property name=classesdir value=${builddir}/classes />

  <property name=distdir value=${basedir}/dist />

  <! 基本編譯路徑設置 >

  <path id=compileclasspath>

  <fileset dir=${javalibdir}>

  <include name=toolsjar />

  </fileset>

  </path>

  <! 運行路徑設置 >

  <path id=runclasspath>

  <path refid=compileclasspath />

  <pathelement location=${classesdir} />

  </path>

  <! 排除java源文件的模式集 >

  <patternset id=nojava>

  <exclude name=**/*java />

  </patternset>

  <! 初始化建立目錄復制文件 >

  <target name=init description=初始化建立目錄復制文件>

  <mkdir dir=${classesdir} />

  <mkdir dir=${distdir} />

  <copy todir=${classesdir}>

  <fileset dir=${srcdir}>

  <patternset refid=nojava />

  </fileset>

  </copy>

  </target>

  <! 清理刪除臨時目錄 >

  <target name=clean description=清理刪除臨時目錄>

  <delete dir=${builddir} />

  <delete dir=${distdir} />

  <echo level=info>清理完畢</echo>

  </target>

  <! 編譯源文件>

  <target name=compile depends=init description=編譯源文件>

  <javac srcdir=${srcdir} destdir=${classesdir} source= target=>

  <classpath refid=compileclasspath />

  </javac>

  </target>

  <! 打包類文件 >

  <target name=jar depends=compile description=打包類文件>

  <jar jarfile=${distdir}/${jarfile} manifest=${srcdir}/${manifestfile}>

  <fileset dir=${classesdir} includes=**/** />

  </jar>

  </target>

  <! 從打包後jar的文件裡運行 >

  <target name=runjar depends=jar description=運行jar>

  <java jar=${distdir}/${jarfile} fork=yes dir=${basedir} />

  </target>

  <! 運行 >

  <target name=run depends=compile description=運行>

  <java classname=powerwindSample fork=yes dir=${basedir}>

  <classpath refid=runclasspath />

  <arg line=${parammsg} />

  </java>

  </target>

  </project>

   

  屬性文件buildproperties

  manifestfile = manifesttxt

  jarfile = samplejar

   

  列表文件manifesttxt (最後的回車不能少)

  MainClass: powerwindSample

   

   

  文件結構

  E:\JAVA\SAMPLE

  │  buildproperties

  │  buildxml

  │

  └─src

  │  manifesttxt

  │

  └─powerwind

  Samplejava

  可以不事先創建manifesttxt 文件而在buildxml文件中加入一個任務

  <! 創建清單文件 >

  <target name=createmanifest description=創建清單文件>

  <manifest file=${srcdir}/${manifestfile}>

  <attribute name=BuiltBy value=${username} />

  <attribute name=MainClass value=powerwindSample />

  </manifest>

  </target>

  <! 這裡的依賴關系加上createmanifest >

  <target name=jar depends=compilecreatemanifest …>

  同樣如果全部屬性在buildxml文件中設置也不用buildproperties這個屬性文件了

  但是如果屬性較多放在其它文件中是比較方便的屬性文件可以用XML文件來替代

  propsxml 文件

  <properties>

  <manifest>

  <file>manifesttxt</file>

  </manifest>

  <jar>

  <file>samplejar</file>

  </jar>

  </properties>

   

  這樣將原來的${manifestfile}改成${propertiesmanifestfile} ${jarfile} 改成${propertiesjarfile}即可

  當然加載屬性文件的<property file=buildproperties />也要改成<xmlproperty file=propsxml />

 操作說明

  切換到目錄E:\java\sample>輸入 ant Dparammsg=你好啊!

  如果輸入 ant –projecthelp 會得到各個任務的描述


From:http://tw.wingwit.com/Article/program/Java/ky/201311/28410.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.