|
如何制作war程序? 如何打包java web程序? ------解決方案-------------------- 比較好的做法是寫一個(gè)ant腳本來做這個(gè),不過思路是一樣的,就是把你手工作的東西程序化了。 ------解決方案--------------------
<?xml version="1.0" encoding="GB2312"?>
<project name="jboss" basedir="." default="ear">
<property file="./build.properties" />
<property environment="env" />
<property name="project.root" value="." />
<property name="project.lib.dir" value="${project.root}/lib" />
<property name="src.dir" value="${project.root}/src" />
<property name="src.java.dir" value="${src.dir}/java" />
<property name="src.config.dir" value="${src.dir}/config" />
<property name="src.jsp.dir" value="${project.root}/webroot" />
<property name="dist.dir" value="${project.root}/dist" />
<property name="deploy.exploded.dir" value="${dist.dir}/project/${project.name}-exploded-ear" />
<property name="deploy.ear.dir" value="${dist.dir}/project" />
<property name="build.dir" value="${project.root}/build" />
<path id="master-classpath">
<fileset file="${j2ee.jar}" />
<fileset dir="${project.lib.dir}" />
</path>
<target name="clean" description="清空所有輸出文件包括build和部署目錄">
<delete dir="${build.dir}/**" />
<delete dir="${deploy.exploded.dir}" />
<delete dir="${deploy.exploded.dir}/${project.name}.ear" />
</target>
<target name="compile" description="開始編譯">
<mkdir dir="${build.dir}" />
<javac destdir="${build.dir}" target="1.5" debug="true" deprecation="false" optimize="false" failonerror="true">
<src path="${src.dir}" />
<classpath refid="master-classpath" />
</javac>
</target>
<target name="ear" depends="exploded-ear" description="開始打包EAR">
<jar jarfile="${deploy.ear.dir}/${project.name}-ejb.jar" basedir="${deploy.exploded.dir}/${project.name}-ejb.jar" />
<jar jarfile="${deploy.ear.dir}/${project.name}-ejb.war"
basedir="${deploy.exploded.dir}/${project.name}.war" />
<jar jarfile="${deploy.ear.dir}/${project.name}-ejb.ear">
<fileset dir="${deploy.exploded.dir}">
<exclude name="APP-INF/classes/context-${project.name}.properties" />
<include name="APP-INF/**" />
<include name="META-INF/**" />
</fileset>
<fileset dir="${deploy.ear.dir}">
<include name="${project.name}-ejb.jar" />
<include name="${project.name}.war" />
</fileset>
</jar>
</target>
<target name="exploded-ear" depends="clean,compile">
<mkdir dir="${deploy.exploded.dir}/APP-INF/classes" />
<mkdir dir="${deploy.exploded.dir}/APP-INF/lib" />
<mkdir dir="${deploy.exploded.dir}/META-INF" />
<mkdir dir="${deploy.exploded.dir}/${project.name}-ejb.jar/META-INF" />
<mkdir dir="${deploy.exploded.dir}/${project.name}.war/WEB-INF/lib" />
<mkdir dir="${deploy.exploded.dir}/${project.name}.war/WEB-INF/classes" />
<copy todir="${deploy.exploded.dir}/${project.name}-ejb.jar/META-INF" >
<fileset dir="${src.config.dir}/app" />
</copy>
<copy todir="${deploy.exploded.dir}/APP-INF/classes">
<fileset dir="${build.dir}">
<exclude name="**/web/**" />
<exclude name="**/biz/**" />
<exclude name="**/integration/**" />
</fileset>
<fileset dir="${src.config.dir}/core" />
<fileset dir="${src.config.dir}">
<include name="context-${project.name}.properties" />
</fileset>
</copy>
<copy todir="${deploy.exploded.dir}/APP-INF/lib">
<fileset dir="${project.lib.dir}" />
</copy>
<!-- 創(chuàng)建WAR -->
<copy todir="${deploy.exploded.dir}/${project.name}.war/WEB-INF/classes">
<fileset dir="${src.config.dir}/web">
<exclude name="*.properties" />
</fileset>
</copy>
<copy todir="${deploy.exploded.dir}/${project.name}.war/WEB-INF/lib">
<fileset dir="${project.lib.dir}" />
</copy>
<!-- 創(chuàng)建JAR -->
<copy todir="${deploy.exploded.dir}/${project.name}-jar.jar/META-INF}">
<fileset dir="${src.config.dir}/ejb" />
</copy>
</target>
</project> |
|
|