如何打包java web程序?

解决方案 »

  1.   

    war是web模块文档,包括jsp,servlet等文件和描述符(DD),就是web.xml文件,用来描述应用程序。web.xml文件位于root/WEB-INF/目录下,然后用   
      jar   cvf   xxx.war   *.jsp   WEB-INF命令打包。   
      建议用jbuilder、websphere   studio或者websphere   application   server中的AAT工具打包,因为web.xml文件很容易错。  
      

  2.   

    ar cvf Test.war  *.* 为什么不用工具打包呢
      

  3.   

    呀 少了个字母....jar cvf Test.war  *.* 
      

  4.   

    把目录结构排好后,用zip压缩工具也可以打包,一般的war包格式为:
    web.war
    | - *.jsp ([dir]/*.jsp)
    | - WEB-INF
        | - classes/*(所有的class文件)
        | - lib/*(所有依赖的jar文件)
         | - web.xml
      

  5.   


    压缩后改为你想要得名字就可以了,注意要以war来结尾就好了
      

  6.   

    压缩没试出来 倒是发现不压缩直接把那个web模块拷到tomcat下可以  呵呵不知道这中做法值不值得提倡
      

  7.   

    比较好的做法是写一个ant脚本来做这个,不过思路是一样的,就是把你手工作的东西程序化了。
      

  8.   

    <?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>
    <!-- 创建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>
    <!-- 创建JAR -->
    <copy todir="${deploy.exploded.dir}/${project.name}-jar.jar/META-INF}">
      <fileset dir="${src.config.dir}/ejb" />
    </copy>
      </target></project>
    类似以上内容