cuiyi's blog(崔毅 crazycy)

          記錄點(diǎn)滴 鑒往事之得失 以資于發(fā)展
          數(shù)據(jù)加載中……

          寫個(gè)完整的打包成可執(zhí)行jar的build.xml文件

            1 <project default="run" basedir=".">
            2 
            3     <property name="name.run" value="demo" />
                  <!--class has main function-->
            4     <property name="main-class" value="com.dev.cui.main.Entrance" />
            5 
            6     <property environment="env" />
            7 
            8     <property name="debug" value="off" />
            9     <property name="optimize" value="on" />
           10     <property name="description" value="on" />
           11 
           12     <property name="src.dir.prefix" value="${basedir}"/>
           13     <property name="src.dir" value="${src.dir.prefix}/conf;${src.dir.prefix}/util;${src.dir.prefix}/dao;${src.dir.prefix}/service;${src.dir.prefix}/main" />
           14     <property name="lib.dir" value="${basedir}/lib" />
           15     <property name="packages" value="com.jc.cxc.fact.*" />
           16 
           17     <property name="build.dest" value="${basedir}/classes" />
           18     <property name="build.javadocs" value="${basedir}/doc"/>
           19 
           20     <property name="dist" value="${basedir}/dist" />
           21     
           22     <property name="class_path" value="lib/ant-antlr-1.6.5.jar lib/asm.jar lib/asm-attrs.jar lib/cglib-2.1.3.jar lib/commons-beanutils.jar lib/commons-collections-2.1.1.jar lib/commons-logging-1.0.4.jar lib/dom4j-1.6.1.jar lib/firebirdsql-full.jar lib/log4j.jar lib/spring.jar"/>
           23 
           24     <!--
           25     <path id="src.dir">
           26         <pathelement location="${src.dir.prefix}/generate"/>
           27         <pathelement location="${src.dir.prefix}/conf"/>
           28         <pathelement location="${src.dir.prefix}/dao"/>
           29         <pathelement location="${src.dir.prefix}/util"/>
           30         <pathelement location="${src.dir.prefix}/ui"/>
           31     </path>
           32     -->
           33 
           34     <path id="project.common.classpath">
           35         <pathelement path="${jsdk_jar}" />
           36         <fileset dir="${lib.dir}">
           37             <include name="**/*.jar/" />
           38         </fileset>
           39     </path>
           40 
           41     <target name="echo">
           42         <tstamp />
           43         <echo message="current.time=${TSTAMP}" />
           44         <echo message="ant.java.version=${ant.java.version}" />
           45     </target>
           46 
           47     <target name="init" depends="clean, echo">
           48         <!--<delete dir="${build.dest}" />-->
           49         <!--<delete dir="${dist}"/>-->
           50         <!--<delete dir="${build.javadocs}" />-->
           51         <mkdir dir="${build.dest}" />
           52         <mkdir dir="${dist}" />
           53         <mkdir dir="${dist}/lib" />
           54         <mkdir dir="${build.javadocs}" />
           55     </target>
           56 
           57     <target name="compile" depends="init">
           58         <javac srcdir="${src.dir}" destdir="${build.dest}" debug="${debug}" optimize="${optimizze}">
           59             <classpath refid="project.common.classpath" />
           60         </javac>
           61         <!--
           62         <copy file="${src.dir.prefix}/generate/hibernate.cfg.xml" todir="${build.dest}">
           63         </copy>
           64         -->
           65         <copy todir="${build.dest}">
           66             <fileset dir="${src.dir.prefix}/conf">
           67                 <exclude name="**/*.java"/>
           68             </fileset>
           69         </copy>
           70     </target>
           71 
           72     <target name="create.manifest">
           73         <!--    <manifest file="${build.dest}">
           74             <attribute name="Main-Class" value="${main-class}"/>
           75         </manifest>-->
           76     </target>
           77 
           78     <target name="jar.run" depends="compile">
           79         <jar jarfile="${dist}/${name.run}.jar" basedir="${build.dest}" includes="**/*.*">
           80             <manifest>
           81                 <attribute name="Main-Class" value="${main-class}"/>
           82                 <attribute name="Class-Path" value="${class_path}"/>
                                <!--to simply the class_path-->
           83 <!--            <attribute name="Class-Path" value="ant-antlr-1.6.5.jar asm.jar asm-attrs.jar cglib-2.1.3.jar commons-beanutils.jar commons-collections-2.1.1.jar commons-logging-1.0.4.jar dom4j-1.6.1.jar firebirdsql-full.jar log4j.jar spring.jar"/>
           84 -->
           85             </manifest>
           86             <!---->
           87         </jar>
           88     </target>
           89 
           90     <!--
           91     <target name="run" depends="jar">
           92         <java classname="${main-class}">
           93             <classpath refid="project.common.classpath" />
           94         </java>
           95     </target>
           96 -->
           97     <target name="clean">
           98         <delete dir="${build.dest}" />
           99         <delete dir="${dist}" />
          100     </target>
          101 
          102     <target name="run" depends="jar.run">
          103         <copy todir="${dist}/lib"><!--according to class_path, which can keep struture clearly-->
          104             <fileset dir="${lib.dir}">
          105 <!--
          106                 <include name="ant-antlr-1.6.5.jar"/>
          107                 <include name="asm.jar"/>
          108                 <include name="asm-attrs.jar"/>
          109                 <include name="cglib-2.1.3.jar"/>
          110                 <include name="commons-beanutils.jar"/>
          111                 <include name="commons-collections-2.1.1.jar"/>
          112                 <include name="commons-logging-1.0.4.jar"/>
          113                 <include name="dom4j-1.6.1.jar"/>
          114                 <include name="firebirdsql-full.jar"/>
          115                 <include name="log4j.jar"/>
          116                 <include name="spring.jar"/>
          117 -->
                                
          <!--to simply the jar files-->
          118                 <include name="*.jar"/>
          119             </fileset>
          120         </copy>
          121         <copy todir="${dist}">
          122             <fileset dir="${src.dir.prefix}">
          123                 <include name="sql.xml"/><!--sql.xml is xml structure to store sqls-->
          124                 <include name="demo.bat"/><!--demo.bat is bat file, for many times user default to run jar not using java, like others. Prefer to use bat, not directly click the jar file-->
          125             </fileset>
          126         </copy>
          127     </target>
          128 
          129 </project>

          posted on 2007-12-26 16:06 crazycy 閱讀(3475) 評(píng)論(1)  編輯  收藏 所屬分類: JavaEE技術(shù)

          評(píng)論

          # re: 寫個(gè)完整的打包成可執(zhí)行jar的build.xml文件  回復(fù)  更多評(píng)論   

          那個(gè)在manifest中設(shè)置class-path的方法有沒有什么簡(jiǎn)單的寫法,比如我的jar都在lib下面
          2008-01-14 12:27 | Classicning
          主站蜘蛛池模板: 珠海市| 定边县| 潜江市| 万安县| 吉林省| 大同市| 禄丰县| 天气| 广汉市| 泾源县| 盐山县| 望奎县| 广州市| 荔波县| 呼图壁县| 烟台市| 同江市| 闵行区| 五台县| 金平| 平定县| 海宁市| 梓潼县| 崇州市| 长岛县| 宽甸| 皋兰县| 汝南县| 景谷| 湖北省| 岚皋县| 青阳县| 双柏县| 南城县| 美姑县| 赤城县| 萝北县| 新安县| 五台县| 五常市| 黑山县|