DANCE WITH JAVA

          開發(fā)出高質(zhì)量的系統(tǒng)

          常用鏈接

          統(tǒng)計

          積分與排名

          好友之家

          最新評論

          ant教程(六) ant進(jìn)階

          ok,上邊你完成了任務(wù),但是你是否有些感觸呢,在那些build.xml中,大多數(shù)是重復(fù)的,而且更改一次目錄需要更改不少東西。是否能讓工作做的更好一點(diǎn)呢,答案是肯定的。
          引入兩個東西:
          1,propery
          2,xml include

          這兩個東西都有一個功能,就是能把build.xml中<propery />中的內(nèi)容分離出來,共同使用
          除此之外它們各有特點(diǎn):

          propery的特點(diǎn)是維護(hù)簡單,只需要簡單的鍵值對,因為并不是所有人都喜歡xml的格式

          xml include的特點(diǎn)是不單可以提取出屬性來,連target也可以。

          還是以前的例子:
          例如我們想把src1 src2 src3這三個屬性從xml中提出來,可以新建一個文件叫all.properties
          里邊的內(nèi)容
          src1=D:\\study\\ant\\src1
          src2=D:\\study\\ant\\src2
          src3=D:\\study\\ant\\src3
          然后你的build.xml文件可以這樣寫,別人只需要更改配置文件,而不許要更改你的build.xml文件了

          <?xml version="1.0" encoding="UTF-8" ?>
          <project name="main" default="build" basedir=".">
          ?<property file="all.properties" />
          ?<property name="bin" value="${basedir}\bin" />
          ?<target name="init">
          ??<mkdir dir="${bin}" />
          ?</target>
          ?<target name="run">
          ??<ant dir="${src1}" target="run" />
          ??<ant dir="${src2}" target="run" />
          ??<ant dir="${src3}" target="run" />
          ?</target>
          ?<target name="clean">
          ??<ant dir="${src1}" target="clean" />
          ??<ant dir="${src2}" target="clean" />
          ??<ant dir="${src3}" target="clean" />
          ?</target>?
          ?<target name="build" depends="init,call">
          ??<copy todir="${bin}">
          ???<fileset dir="${src1}">
          ????<include name="*.jar" />
          ???</fileset>
          ???<fileset dir="${src2}">
          ????<include name="*.jar" />
          ???</fileset>
          ???<fileset dir="${src3}">
          ????<include name="*.jar" />
          ???</fileset>
          ??</copy>
          ?</target>
          ?<target name="rebuild" depends="build,clean">
          ??<ant target="clean" />
          ??<ant target="build" />
          ?</target>
          ?<target name="test">
          ??<ant dir="${src1}" target="test" />
          ??<ant dir="${src2}" target="test" />
          ??<ant dir="${src3}" target="test" />
          ?</target>
          </project>
          如果你自己看的話你會看到這樣一個target
          <target name="test">
          ?<ant dir="${src1}" target="test" />
          ?<ant dir="${src2}" target="test" />
          ?<ant dir="${src3}" target="test" />
          </target>
          有的時候你想給每個小組的build.xml加入幾個target,一種做法是每個里邊寫,然后在這里調(diào)用
          但是有一種更好的方法。
          你可以寫一個include.xml文件,內(nèi)容如下
          <?xml version="1.0" encoding="UTF-8" ?>
          <property name="src" value="src"/>
          <property name="dest" value="classes"/>
          <target name="test" >
          ?<ant target="run" />
          </target>
          然后更改你三個小組的build.xml文件,每個里邊加入如下內(nèi)容
          <!--include a xml file ,it can be common propery ,can be also a target? -->
          <!DOCTYPE project [
          <!ENTITY share-variable SYSTEM "file:../include.xml">
          ]>
          &share-variable;
          變成如下的樣子
          這個時候,你只要在include.xml添加propery , 添加target,三個build.xml會同時添加這些propery和target
          而且不會讓三個組的build.xml變得更復(fù)雜。

          <?xml version="1.0" encoding="UTF-8" ?>
          <!--include a xml file ,it can be common propery ,can be also a target? -->
          <!DOCTYPE project [
          <!ENTITY share-variable SYSTEM "file:../include.xml">
          ]>
          <project name="HelloWorld" default="run" basedir=".">
          ?<!--use the include? -->
          ?&share-variable;
          ?<!--defined the property-->
          ?<!--via include
          ?<property name="src" value="src"/>
          ?<property name="dest" value="classes"/>
          ?-->
          ?<property name="hello_jar" value="hello1.jar"/>
          ?<!--define the op-->
          ?<target name="init">
          ??<mkdir dir="${dest}"/>
          ?</target>
          ?<target name="compile" depends="init">
          ??<javac srcdir="${src}" destdir="${dest}"/>
          ?</target>
          ?<target name="build" depends="compile">
          ??<jar jarfile="${hello_jar}" basedir="${dest}"/>
          ?</target>
          ?<target name="run" depends="build">
          ??<java classname="test.ant.HelloWorld" classpath="${hello_jar}"/>
          ?</target>
          ?<target name="clean">
          ??<delete dir="${dest}" />
          ??<delete file="${hello_jar}" />
          ?</target>
          ?<target name="rerun" depends="clean,run">
          ??<ant target="clean" />
          ??<ant target="run" />
          ?</target>
          </project>

          posted on 2006-09-20 00:19 dreamstone 閱讀(1570) 評論(1)  編輯  收藏 所屬分類: 利器

          評論

          # re: ant教程(六) ant進(jìn)階 2007-07-23 09:14 郁悶

          請問有一個j2ee工程,使用了hibernate,struts技術(shù),那么如何編寫buiuld.xml
          以完成編譯,打war包的工作呢?  回復(fù)  更多評論   

          主站蜘蛛池模板: 钦州市| 绵阳市| 四会市| 左云县| 大连市| 东宁县| 新泰市| 福清市| 县级市| 诸暨市| 三亚市| 汕尾市| 丹巴县| 宜君县| 平安县| 钟山县| 连山| 景洪市| 山阳县| 乌审旗| 阿瓦提县| 洱源县| 连云港市| 磴口县| 龙州县| 呼伦贝尔市| 泾阳县| 抚远县| 那曲县| 长子县| 肥城市| 若羌县| 绥芬河市| 江陵县| 天祝| 余姚市| 遂川县| 凤山县| 慈利县| 浦北县| 文登市|