cuiyi's blog(崔毅 crazycy)

记录点滴 鉴往事之得失 以资于发展
数据加载中……

写个完整的打包成可执行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 阅读(3472) 评论(1)  编辑  收藏 所属分类: JavaEE技术

评论

# re: 写个完整的打包成可执行jar的build.xml文件  回复  更多评论   

那个在manifest中设置class-path的方法有没有什么简单的写法,比如我的jar都在lib下面
2008-01-14 12:27 | Classicning

只有注册用户登录后才能发表评论。


网站导航: