${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 |
接下来第一步,就是要先定义好一些全局的参数,以便以后更改起来方便,风格
大家自己选择好了,我用的是如下的方式:
(1) 给出项目的目录:
|
(2) 定义Java Source的编译选项
|
(3) 如果需要 import EJB library 的话,给出下面的定义,后面会用到
|
(4) 给出部署WAR/EAR文件的名称:
|
(5) 给出CLASSPATH的定义,引入相关的Library和项目编译生成的Java Classes
|
(6) 基本的clean和init的task
|
(7) 编译Java Source (9) 开始进行compile,make 和 build,并生成部署档案
<!--// compile the Java source //-->
<javac srcdir="${dir.project.src}"
destdir="${dir.project.compile}"
encoding="${opt.compile.encoding}"
source="${opt.compile.source}"
target="${opt.compile.target}"
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) 预编译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.target}"
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" />
<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" />