茫茫網海中的冷日
         
茫茫網海中的冷日
發生過的事,不可能遺忘,只是想不起來而已!
 恭喜您是本站第 1731323 位訪客!  登入  | 註冊
主選單

Google 自訂搜尋

Goole 廣告

隨機相片
IMG_0132.jpg

授權條款

使用者登入
使用者名稱:

密碼:


忘了密碼?

現在就註冊!

爪哇咖啡屋 : [轉貼]ANT-build.xml文件詳解

發表者 討論內容
冷日
(冷日)
Webmaster
  • 註冊日: 2008/2/19
  • 來自:
  • 發表數: 15773
[轉貼]如編寫一個 ant 的腳本
http://www.csdn.net/develop/article/20/20474.shtm
這篇文章可能有你想要的東西:
用ANT構建java可執行程序

Ant是現在進行項目比較好的管理工具,通過Ant可以按照自己的需要來管理自己的工程.

第一步:配置自己的工具j2sdk和ant.j2sdk在http://java.sun.com下載.ant在http://www.apache.org下載.設置環境變量JAVA_HOME=E:\j2sdk1.4.1_0;和ANT_HOME=e:\ant; PATH= E:\j2sdk1.4.1_04\bin;E:\ant\bin;

第二步:ant在編譯時需要一個build.xml的文件.另外為了使程序便於移植到其他方面,做一個build.properties文件保存ant的基本屬性.

Ant的基本屬性文件如下:

具體屬性如下所示:
  #此文檔用來設定一些常用屬性

  #檔案名稱

  name=HelloWorld

  #合成後jar的檔名

  jar=${name}.jar

  #原始檔所在路徑

  src.dir=src

  #資源檔所在路徑

  res.dir=res

  #建模產物存放位置

  build.dir=build

  #編譯後類別檔的存放位置

  build.dir.classes=${build.dir}/classes

  #jar最終放置位置

  build.dir.bin=${build.dir}/bin

  #未經混淆的jar檔名

  build.dir.bin.jarunobfus=${build.dir.bin}/${name}-unobfus.jar

  #經混淆的jar檔名

  build.dir.bin.jar=${build.dir.bin}/${jar}

  #JDK所在的路徑

  java.home=E:\j2sdk1.4.1_04

  #JDK內附工具所在路徑

  java.home.bin=${java.home}/bin

  #混淆器控制檔

  obfuscator.lib=retroguard.jar

  obfuscator.script=script.rgs

第三步:建立build.xml.用ant來編譯來它產生文件.

Build.xml中具體屬性的意思為:

Mkdir是建立目錄,delete是刪除目錄,javac是編譯命令,javac中子項有debug=」off」是關閉斷點調試.srcdir是原文件所在目錄,destdir是編譯後目標文件所在目錄.jar是打包命令,basedir是要打包文件所在目錄,jarfile是編譯後是沒有經過混淆器後生成的jar文件.manifest.mf是菜單文件,包含所執行的所要類.fileset求的是所要的資源文件所在目錄.java是執行混淆器,有三個命令參數,原目標jar文件,混淆後的jar文件,不混淆的清單列表.混淆器用的是Open Source的RetroGuard.在http://www.retrologic.com/下載.在CLASSPATH中設置retroguard.jar文件路徑.depends屬性是target之間相互依賴的關係.只要執行 default屬性是ant默認執行的參數. Ant 和 ant all是一樣的.
  <?xml   version="1.0"   encoding="gb2312"   ?>

  <project   name="第一個java程序"   default="all"   basedir=".">

          <!--引入位於build.properties之中的常用屬性   -->

            <property   file="build.properties"/>

            <target   name="prepare"   description="準備工作">

                    <mkdir   dir="${build.dir}"/>

                    <mkdir   dir="${build.dir.classes}"/>

            </target>

          <target   name="cleandir"   description="清除目錄">

                    <delete   dir="${build.dir}"/>

            </target>

            <target   name="compile"   description="原始編譯碼"   depends="prepare">

                  <javac   debug="off"

                                srcdir="${src.dir}"

                                destdir="${build.dir.classes}"

                    />

            </target>

            <target   name="package"   description="包裝成jar文件"   depends="compile">

                  <mkdir   dir="${build.dir.bin}"/>

                  <jar   basedir="${build.dir.classes}"

                            jarfile="${build.dir.bin.jarunobfus}"

                            manifest="MANIFEST.MF">

                          <fileset   dir="${res.dir}"/>

                  </jar>

          </target>

          <target   name="obfuscate"   description="使用混淆器"   depends="package">

                  <java   fork="yes"   classname="RetroGuard"   classpath="${obfuscate.lib}">

                        <arg   line="${build.dir.bin.jarunobfus}"/>

                        <arg   line="${build.dir.bin.jar}"/>

                        <arg   line="${obfuscator.script}"/>

                  </java>

          </target>

          <target   name="all"   description="完成所有程序"   depends="cleandir,obfuscate">

          </target>

  </project>

第四步:編寫源文件.放到src目錄下.

第五步:編寫菜單文件manifest.mf,Main是主類.demo是包.
  Main-Class:   demo.Main

第六步:編寫混淆器的列表文件script.rgs
  .class   demo/Main   public

這樣Main.class不會被混淆.

第七步:執行在包含build.xml下執行ant命令.如果src目錄下是gui程序這樣在build\bin下雙擊jar文件這樣gui程序這樣就可以執行了.

轉貼,原貼:
http://www.java-cn.com/technology/technology_detail.jsp?id=1842
下面是一個 ANT 工程文件的示例 build.xml,供大家參考。更多的使用方法請參閱 ANT 自帶的文檔。
  <?xml   version="1.0"?>
  <!--
  ==========================================================================
  xiaoyoung   BBS   build   file
  Legal:   Copyright   (c)   2000,2001,2002   Young
  ==============================================================================
  -->
  <project   default="dist"   basedir=".">
  <property   name="name"   value="bbs"/>
  <property   name="version"   value="1"/>
  <property   name="year"   value="2002"/>
  <property   name="language"   value="en"/>
  <!--
  Give   user   a   chance   to   override   without   editing   this   file
  (and   without   typing   -D   each   time   he   compiles   it)
  -->
  <property   file=".ant.properties"/>
  <property   file="${user.home}/.ant.properties"/>
  <!--
  There   should   be   no   need   to   override   default   compiler   but   need   to   change
  javac   task   to   run   without   this
  -->

  <property   name="build.compiler"   value="jikes"/>
  <!--
  <property   name="build.compiler"   value="classic"/>
  -->

  <!--
  these   are   here   only   for   those   who   use   jikes   compiler.   For   other
  developers   this   part   makes   no   difference.
  -->
  <property   name="build.compiler.emacs"   value="on"/>
  <property   name="build.compiler.pedantic"   value="true"/>
  <property   name="build.compiler.depend"   value="true"/>
  <property   name="build.compiler.fulldepend"   value="true"/>

  <property   name="debug"   value="on"/>
  <property   name="optimize"   value="off"/>
  <property   name="deprecation"   value="off"/>

  <!--
  ===================================================================
  Set   the   properties   for   intermediate   directory
  ===================================================================
  -->
  <property   name="build.dir"   value="build"/>
  <property   name="build.classes"   value="${build.dir}/classes"/>
  <property   name="build.webapps"   value="${build.dir}/webapps"/>

  <property   name="dist.dir"   value="dist"/>
  <property   name="dist.classes"   value="${dist.dir}/WEB-INF/classes"/>
  <property   name="src.dir"   value="src"/>
  <property   name="classes.dir"   value="${src.dir}/classes"/>
  <property   name="webapps.dir"   value="${src.dir}/webapps"/>

  <path   id="project.class.path">
  <pathelement   path="${java.class.path}"   />
  <pathelement   path="${build.classes}"   />
  </path>

  <!--   ===================================================================   -->
  <!--   Help   on   usage   -->
  <!--   ===================================================================   -->
  <target   name="usage">
  <echo   message=""/>
  <echo   message=""/>
  <echo   message="xiaoyoung   BBS   Build   file"/>
  <echo   message="-------------------------------------------------------------"/>
  <echo   message=""/>
  <echo   message="   available   targets   are:"/>
  <echo   message=""/>
  <echo   message="   compile   -->   compiles   the   source   code"/>
  <echo   message="   dist   -->   generates   the   distribution,   packed"/>
  <echo   message="   clean   -->   cleans   up   the   directory"/>
  <echo   message=""/>
  <echo   message="   See   the   comments   inside   the   build.xml   file   for   more   details."/>
  <echo   message="-------------------------------------------------------------"/>
  <echo   message=""/>
  <echo   message=""/>
  </target>

  <!--   ===================================================================   -->
  <!--   Building
  <!--   ===================================================================   -->
  <target   name="prepare">
  <mkdir   dir="${build.classes}"/>
  </target>

  <target   name="compile"   depends="prepare">
  <javac   destdir="${build.classes}"
  optimize="${optimize}"
  deprecation="${deprecation}">
  <classpath   refid="project.class.path"   />
  <src   path="${classes.dir}"   />
  </javac>
  </target>

  <target   name="dist"   depends="compile">
  <mkdir   dir="${dist.dir}"   />
  <copy   todir="${dist.dir}"   >
  <fileset   dir="${webapps.dir}"   />
  </copy>
  <mkdir   dir="${dist.classes}"   />
  <copy   todir="${dist.classes}"   >
  <fileset   dir="${build.classes}"   />
  </copy>
  </target>

  <!--   ===================================================================   -->
  <!--   Cleans   everything   -->
  <!--   ===================================================================   -->
  <target   name="setup-properties"   >
  <tstamp/>
  <property   name="dist.dir"   value="dist"/>
  </target>

  <target   name="clean"   depends="setup-properties">
  <delete   dir="${build.dir}"/>
  <delete   dir="${dist.dir}"/>
  <delete   verbose="true">
  <fileset   dir="."   includes="**/*~"   defaultexcludes="no"/>
  <fileset   dir="."   includes="**/*.bak"/>
  </delete>
  </target>

  </project>


原文出處:求助:如何编写一个ant的脚本?高手来说说细节吧! Java / J2SE / 基础类 - CSDN社区 community.csdn.net
前一個主題 | 下一個主題 | | | |

討論串




Powered by XOOPS 2.0 © 2001-2008 The XOOPS Project|