<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 495,  comments - 11,  trackbacks - 0

      前言

      ant是java開發者工具箱的重要一環,junit,xdoclet等都與它緊密關聯,程序員可能習慣了IDE提供的自動構建,甚至部署的功能,從而忽略了ant本身,其實,主流的IDE通常是內置ant任務來完成這些工作的,熟悉ant內在的機理,可以閱讀或簡單修改build.xml無疑可以幫助你更靈活地集成、管理應用項目,如果需要學習maven這種開源項目管理解決方案,也是要以理解ant為基礎的喲。另外,使用ant的過程實際上對構建進行了文檔化,它是無關于IDE的,想象一下,你的同事中可能三分之一在用JbuilderX,三分之一用eclipse,還有一些是別的。

      本人使用eclipse3.0.1,以前的構建和發布工作都由myeclipse插件作了,趁周末實踐了一下手動構建,記此備忘。

      實踐

      準備工作:這是我的個人習慣,把所有公用的類庫jar置于一個固定目錄,分好類,不要丟在一個文件夾下,如jakarta-commons、hibernate、spring、struts等,這些是源碼構建時需要用到的,在部署時可能有一些不用再打進去了,比如servlet.jar。如果你們有自己的framework,也一并放在這里。然后,打開eclipse,進入Windows->Preferences->Java->User Libraries,增加一個自己的庫,比如說mylib,把剛才那些公共的jar全部添入,這樣有個好處,在eclipse項目中,不用再看到煩人的長長的jar列表了,比較整潔。


      下來正式進行:

      1.新建一個Java Project,此時就不要再選你的j2ee插件內置的一些選項了,至簡即可。

      2.在root下建幾個文件夾,我們在網上下載的開源項目中經??梢钥吹竭@些,比如:

      src - 源碼
      classes - 編譯
      web - jsp等
      lib - 庫,這里可以簡單地把mylib下的東東copy過來,便于將來發布源碼。
      dlist - 輸出的jar或war

      當然,我們要建一個build.xml,eclipse中會出現一個螞蟻的小圖標,一般這個文件建立后,下一個項目簡單的copy過去,稍加改動就可以了。

      3.打開項目的屬性頁,在Java Build Path的庫選項中,加入我們自定義的公共庫mylib.至于Builders方式就不用改了,使用默認的Java Builer即可,我只是項目部署時使用ant,平常的排錯工作就交給IDE吧。

      4.重中之重,寫你的build.xml,網上文章很海,我這里就不再?嗦了,基本上就分那幾個任務:

      4.1 先要聲明一些路徑變量,如

     ?。紁roperty name="war.dir" value="dlist" />

      也可以將其寫至properties文件中,在這里引用;

      4.2 聲明編譯的類路徑,如下:

      <path id="master-classpath">
     ?。糵ileset dir="${lib.root}/struts">
     ?。糹nclude name="struts-menu-2.3.jar" />
      <include name="struts.jar" />
     ?。?fileset>
     ?。糵ileset dir="${lib.root}/jakarta-commons">
     ?。糹nclude name="commons-*.jar" />
     ?。?fileset>
      <fileset dir="${lib.root}/ibatis2.0.9">
     ?。糹nclude name="ibatis-*.jar" />
     ?。?fileset>
     ?。糵ileset dir="${lib.root}/jdbcdriver">
      <include name="jtds-0.9-rc2.jar" />
     ?。?fileset>s
      ......
     ?。?path>

      4.3 清空輸出目錄,如web,dlist等。

      4.4 編譯構建:

      <target name="build" description="Compile main source tree java files into class files, generate jar files">

     ?。糾kdir dir="${build.dir}" />

     ?。糺avac destdir="${build.dir}" source="1.3" target="1.3" debug="true" deprecation="false" optimize="false" failonerror="true">
      <src path="${src.dir}" />
      <classpath refid="master-classpath" />
      </javac>

     ?。糲opy todir="${build.dir}" preservelastmodified="true">
     ?。糵ileset dir="${src.dir}">
     ?。糹nclude name="**/*.xml" />
     ?。糹nclude name="**/*.properties" />
     ?。?fileset>
      </copy>
     ?。?-- ============================================= -->
     ?。?-- 據測試,資源文件不能被打到jar文件中,其余均可 -->
     ?。?-- ============================================= -->
      <copy todir="${webclasses.dir}/conf" preservelastmodified="true">
     ?。糵ileset dir="${src.dir}/conf">
     ?。糹nclude name="springResources*.properties" />
     ?。?fileset>
      </copy>

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

     ?。糺ar jarfile="${weblib.dir}/${name}.jar" compress="true">
     ?。糵ileset dir="${build.dir}">
     ?。糹nclude name="**" />
     ?。?fileset>
      </jar>

      <copy todir="${weblib.dir}" preservelastmodified="true">

     ?。糵ileset dir="${lib.root}">
     ?。糹nclude name="log4j-1.2.8.jar" />
     ?。?fileset>
      <fileset dir="${lib.root}/struts">
      <include name="struts-menu-2.3.jar" />
      <include name="struts.jar" />
      </fileset>
     ?。糵ileset dir="${lib.root}/jakarta-commons">
     ?。糹nclude name="commons-*.jar" />
      </fileset>
      <fileset dir="${lib.root}/spring-1.1.3">
     ?。糹nclude name="spring.jar" />
     ?。糹nclude name="aopalliance.jar" />
     ?。?fileset>
      ......

     ?。?copy>

     ?。?target>

      <!-- ============================================= -->
      <!-- Compile main Java sources and copy libraries -->
      <!-- ============================================= -->
     ?。紅arget name="warfile" description="Build the web application archive">

     ?。糾kdir dir="${dist.dir}" />
      <war warfile="${dist.dir}/${name}.war" basedir="${war.dir}" webxml="${war.dir}/WEB-INF/web.xml">
      <include name="*" />
     ?。糹nclude name="WEB-INF/*.*" />
     ?。糴xclude name="WEB-INF/web.xml" />
     ?。糹nclude name="WEB-INF/classes/*.*" />
     ?。糹nclude name="WEB-INF/lib/**" />
      <exclude name="**/.*" />
     ?。?war>

     ?。?target>


      4.5 打成war

     ?。紅arget name="warfile" description="Build the web application archive">

     ?。糾kdir dir="${dist.dir}" />
      <war warfile="${dist.dir}/${name}.war" basedir="${war.dir}" webxml="${war.dir}/WEB-INF/web.xml">
     ?。糹nclude name="*" />
     ?。糹nclude name="WEB-INF/*.*" />
      <exclude name="WEB-INF/web.xml" />
     ?。糹nclude name="WEB-INF/classes/*.*" />
     ?。糹nclude name="WEB-INF/lib/**" />
     ?。糴xclude name="**/.*" />
      </war>

     ?。?target>

      4.6 把幾個任務串起來,弄一個default target

     ?。紅arget name="all">
      <antcall target="clean" />
     ?。糰ntcall target="build" />
     ?。糰ntcall target="warfile" />
     ?。?target>

      打完收功。在實踐中發現,一些配置文件,如struts-config.xml ibatis和spring的xml都可以打進jar文件,spring資源文件好象不行,得單獨copy至WEB-INFclasses下,另外,你的web文件夾下,事先得放好web.xml,以及一些tld文件喲!

    posted on 2007-08-15 01:33 jadmin 閱讀(69) 評論(0)  編輯  收藏

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 免费无码中文字幕A级毛片| 中文在线观看国语高清免费| 青青草a免费线观a| 亚洲精品在线播放视频| 18级成人毛片免费观看| 亚洲中字慕日产2020| 一色屋成人免费精品网站| 亚洲综合一区二区三区四区五区| 免费做爰猛烈吃奶摸视频在线观看| 亚洲AV一二三区成人影片| 四虎影视www四虎免费| 国产成人精品久久亚洲高清不卡| 国产亚洲精品免费| 成人免费网站视频www| 久久亚洲精品成人| 色se01短视频永久免费| 亚洲国产日韩a在线播放| 亚洲av无码乱码在线观看野外 | 国产精品四虎在线观看免费| 羞羞漫画页面免费入口欢迎你| jlzzjlzz亚洲乱熟在线播放| 久久久99精品免费观看| 亚洲综合在线一区二区三区| 亚洲精品美女久久久久99小说| 日本免费在线观看| 亚洲av无码久久忘忧草| 亚洲AV无码乱码精品国产| 叮咚影视在线观看免费完整版| 亚洲一卡2卡3卡4卡国产网站 | 久久免费视频99| 自拍偷区亚洲国内自拍| 亚洲伊人久久综合影院| 免费观看无遮挡www的视频| 亚洲精品无码不卡在线播放| 在线观看亚洲av每日更新| 1000部啪啪毛片免费看| 黄页网站在线观看免费| 亚洲综合激情六月婷婷在线观看| 国产91久久久久久久免费| 97精品免费视频| 免费中文字幕视频|