小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

整理一個ANT在J2EE項目中的應(yīng)用,含預(yù)編譯JSP和打包WAR/EAR擋!

 figol 2006-02-17
首先,假設(shè)我們的項目的結(jié)構(gòu)如下,相同的目錄大家可以自行擴(kuò)展!
${project.root}
  |
  +-- build/           <-- WAR/EAR檔的目錄
  +-- classes/         <-- 編譯的輸出目錄,與JBuilder兼容
  +-- src/             <-- Java源文件目錄
  +-- web/             <-- WEB Content 目錄
  |    |
  |    +--pages/       <-- JSP 文件目錄
  |    +--WEB-INF/     <-- web.xml 等配置文件
  +-- ejb              <-- EJB Content 目錄
  |    |
  |    +--META-INF/    <-- EJB 配置文件
  +-- ear              <-- EAR Content 目錄
  |    |
  |    +--META-INF/    <-- EAR 配置文件
  |-- lib              <-- 項目所要用到的library

接下來第一步,就是要先定義好一些全局的參數(shù),以便以后更改起來方便,風(fēng)格
大家自己選擇好了,我用的
是如下的方式:

(1) 給出項目的目錄:

<!--// project directories //-->
<property name="dir.project" value="D:/Code/MyProject"/>
<property name="dir.project.lib" value="${dir.project}/lib"/>
<property name="dir.project.src" value="${dir.project}/src"/>
<property name="dir.project.web_module" value="${dir.project}/web"/>
<property name="dir.project.ejb_module" value="${dir.project}/ejb"/>
<property name="dir.project.ear_module" value="${dir.project}/ear"/>

<!--// compile, build and deploy directories //-->
<property name="dir.project.compile" value="${dir.project}/classes"/>
<property name="dir.project.compile.jspcache" value="${dir.project.compile}/jspcache"/>
<property name="dir.project.build" value="${dir.project}/build"/>

<!--// J2EE Container //-->
<property name="dir.appserver.tomcat.home" value="D:/J2EE_HOME/AppServer/Tomcat"/>
<property name="dir.appserver.oc4j.j2ee.home" value="D:/J2EE_HOME/AppServer/OC4J/j2ee/home"/>

(2) 定義Java Source的編譯選項
 
<!--
// Java compiler options //-->
<property name="opt.compile.source" value="1.4"/>
<property name="opt.compile.target" value="1.4"/>
<property name="opt.compile.encoding" value="UTF-8"/>
<property name="opt.compile.deprecation" value="on"/>
<property name="opt.compile.debug" value="on"/>
<property name="opt.compile.optimize" value="off"/>

(3) 如果需要 import EJB library 的話,給出下面的定義,后面會用到
  
<!--
// EJB imported resource //-->
<property name="import.ejb.report.server" value="${dir.project.lib}/AppFramework.jar"/>

(4) 給出部署WAR/EAR文件的名稱:


<!--// Deployment //-->
<property name="deploy.file.ejb_module" value="MyApp_EJB.jar" />
<property name="deploy.file.web_module" value="MyApp_WEB.war" />
<property name="deploy.file.ear_module" value="MyApp.ear" />

(5) 給出CLASSPATH的定義,引入相關(guān)的Library和項目編譯生成的Java Classes

<path id="CLASSPATH">
<!--// Tomcat Libraries //-->
<fileset dir="${dir.appserver.tomcat.home}/bin">
<include name="*.jar"/>
</fileset>
<fileset dir="${dir.appserver.tomcat.home}/server/lib">
<include name="*.jar"/>
</fileset>
<fileset dir="${dir.appserver.tomcat.home}/common/lib">
<include name="*.jar"/>
</fileset>
<!--// OC4J Libraries
<fileset dir="${dir.appserver.oc4j.j2ee.home}">
<include name="*.jar"/>
</fileset>
<fileset dir="${dir.appserver.oc4j.j2ee.home}/lib">
<include name="*.jar"/>
</fileset>
//-->

<!--// Depended Libraries //-->
<pathelement location="${dir.project.lib}/abc.jar"/>
<pathelement location="${dir.project.lib}/AppServer.jar"/>
<pathelement location="${dir.project.lib}/AppServiceClient.jar"/>
<pathelement location="${dir.project.lib}/AppUtil.jar"/>
<pathelement location="${dir.project.lib}/xport.jar"/>
<pathelement location="${dir.project.lib}/jaxen-full.jar"/>
<pathelement location="${dir.project.lib}/jstl.jar"/>
<pathelement location="${dir.project.lib}/log4j-1.2.13.jar"/>
<pathelement location="${dir.project.lib}/ojdbc14.jar"/>
<pathelement location="${dir.project.lib}/saxpath.jar"/>
<pathelement location="${dir.project.lib}/standard.jar"/>
<pathelement location="${dir.project.lib}/taglibs-log.jar"/>
<!--// Project classes //-->
<pathelement location="${dir.project.compile}"/>
</path>

(6) 基本的clean和init的task

<target name="clean">
<delete dir="${dir.project.build}"/>
<delete dir="${dir.project.compile.jspcache}"/>
<delete dir="${dir.project.compile}"/>
<delete dir="${dir.project.web_module}/WEB-INF/classes"/>
<delete dir="${dir.project.web_module}/WEB-INF/lib"/>
</target>

<target name="init">
<mkdir dir="${dir.project.compile}"/>
<mkdir dir="${dir.project.compile.jspcache}"/>
<mkdir dir="${dir.project.web_module}/WEB-INF/classes"/>
<mkdir dir="${dir.project.web_module}/WEB-INF/lib"/>
<mkdir dir="${dir.project.build}"/>
</target>

(7) 編譯Java Source
<target name="src_compile" depends="init">
<!--// compile the Java source //-->
<javac srcdir="${dir.project.src}"
destdir
="${dir.project.compile}"
encoding
="${opt.compile.encoding}"
source
="${opt.compile.source}"
target
="${opt.compile.source}"
deprecation
="${opt.compile.deprecation}"
debug
="${opt.compile.debug}"
optimize
="{opt.compile.optimize}" >
<classpath refid="CLASSPATH"/>
<include name="**/*.java"/>
</javac>
<!--// copy the classpath resources //-->
<copy todir="${dir.project.compile}">
<fileset dir="${dir.project.src}">
<exclude name="**/*.java"/>
</fileset>
</copy>
</target>

(8) 預(yù)編譯JSP文件,可選擇基于Tomcat或是Oracle Application Server

<!--// for Tomcat //-->
<target name="jsp_src_generate" depends="src_compile">
<taskdef classname="org.apache.jasper.JspC" name="jasper2">
<classpath refid="CLASSPATH"/>
</taskdef>
<jasper2 validateXml="false"
verbose
="9"
uriroot
="${dir.project.web_module}"
outputDir
="${dir.project.compile.jspcache}"
webXmlFragment
="${dir.project.compile.jspcache}/generated-web.xml" />
</target>

<!--// for OC4J 9.0.4
<target name="jsp_src_generate" depends="src_compile">
<java classname="oracle.jsp.tools.Jspc" fork="yes" failonerror="true">
<classpath refid="CLASSPATH"/>
<arg line="-extend com.orionserver.http.OrionHttpJspPage"/>
<arg line="-srcdir ${dir.project.compile.jspcache}"/>
<arg line="-appRoot ${dir.project.web_module}"/>
<arg line="-noCompile"/>
<arg line="-debug"/>
<arg line="-verbose"/>
<arg line="${dir.project.web}/*.jsp"/>
</java>
</target>
//-->


<target name="jsp_src_compile">
<javac srcdir="${dir.project.compile.jspcache}"
destdir
="${dir.project.compile.jspcache}"
encoding
="${opt.compile.encoding}"
source
="${opt.compile.source}"
target
="${opt.compile.source}"
deprecation
="${opt.compile.deprecation}"
debug
="${opt.compile.debug}"
optimize
="{opt.compile.optimize}" >
<classpath refid="CLASSPATH"/>
<include name="**"/>
</javac>
</target>

<target name="jsp_precompile" depends="src_compile, jsp_src_generate, jsp_src_compile" />

(9) 開始進(jìn)行compile,make 和 build,并生成部署檔案

<target name="compile" depends="src_compile, jsp_precompile" />

<!--// Build WAR file //-->
<target name="make.web_module" depends="compile">
<war destfile="${dir.project.build}/${deploy.file.web_module}" webxml="${dir.project.web_module}/WEB-INF/web.xml">
<fileset dir="${dir.project.web_module}" >
<include name="**"/>
<exclude name="WEB-INF/classes/**"/>
<exclude name="WEB-INF/lib/**"/>
</fileset>
<classes dir="${dir.project.compile}">
<include name="**"/>
<exclude name="project/package/trx/**"/>
<exclude name="jspcache/**"/>
</classes>
<lib dir="${dir.project.lib}">
<include name="AppUtil.jar"/>
<include name="AppClient.jar"/>
</lib>
</war>
</target>

<!--// Build EJB Jar file //-->
<target name="make.ejb_module" depends="src_compile">
<jar destfile="${dir.project.build}/${deploy.file.ejb_module}">
<zipgroupfileset dir="${dir.project.lib}">
<include name="AppServer.jar"/>
</zipgroupfileset>
<fileset dir="${dir.project.ejb_module}">
<include name="**"/>
</fileset>
<fileset dir="${dir.project.compile}">
<include name="**"/>
<exclude name="project/package/controller/**"/>
<exclude name="jspcache/**"/>
</fileset>
</jar>
</target>

<!--// Build EAR file //-->
<target name="make.ear_module" depends="compile, make.web_module, make.ejb_module">
<ear destfile="${dir.project.build}/${deploy.file.ear_module}" appxml="${dir.project.ear_module}/META-INF/application.xml">
<fileset dir="${dir.project.build}">
<include name="${deploy.file.web_module}"/>
<include name="${deploy.file.ejb_module}"/>
</fileset>
</ear>
</target>

<target name="make" depends="init, compile, make.web_module, make.ejb_module, make.ear_module" />

<target name="build" depends="clean, init, make" />

好了, 把上面的內(nèi)容綜合起來, 就可以用ant build命令來編譯了!

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多