Ant打包

转自:http://peirenlei.iteye.com/blog/1688184
使用Ant打包Jar文件
主要是lib/*.jar的路径需要注意:  jar包里的jar包是不能被识别为classpath

使用方法:如果代码是如下面的目录结构组织的,不需要修改什么,直接在终端运行ant命令即可在out目录输出对应的jar文件。<?xml version="1.0" ?>
Java代码   收藏代码
  1. <project default="jar" name="Acid">  
  2.     <!-- 工程目录结构  
  3.     project  
  4.         |-bin  
  5.         |-src  
  6.         |-lib  
  7.         |-out  
  8.         |-build.xml  
  9.     -->  
  10.     <property name="lib.dir" value="lib"/>  
  11.     <property name="src.dir" value="src"/>  
  12.     <property name="classes.dir" value="bin"/>  
  13.   
  14.     <property name="output.dir" value="out"/>  
  15.     <property name="jarname" value="Test.jar"/>  
  16.     <property name="mainclass" value="com.biao.Test"/>  
  17.   
  18.     <!-- 第三方jar包的路径 -->  
  19.     <path id="lib-classpath">  
  20.         <fileset dir="${lib.dir}">  
  21.             <include name="**/*.jar"/>  
  22.         </fileset>  
  23.     </path>  
  24.   
  25.     <!-- 1. 初始化工作,如创建目录等 -->  
  26.     <target name="init">  
  27.         <mkdir dir="${classes.dir}"/>  
  28.         <mkdir dir="${output.dir}"/>  
  29.     </target>  
  30.   
  31.     <!-- 2. 编译 -->  
  32.     <target name="compile" depends="init">  
  33.         <javac srcdir="${src.dir}" destdir="${classes.dir}">  
  34.             <compilerarg line="-encoding UTF-8"/>  
  35.             <classpath refid="lib-classpath"/>  
  36.         </javac>  
  37.     </target>  
  38.   
  39.     <!-- 3. 打包jar文件 -->  
  40.     <target name="jar" depends="compile">  
  41.         <copy todir="${output.dir}/lib">  
  42.             <fileset dir="${lib.dir}"/>  
  43.         </copy>  
  44.   
  45.         <!--Create a property containing all .jar files,  
  46.         prefix lib/, and seperated with a space-->  
  47.         <pathconvert property="mf.classpath" pathsep=" ">  
  48.             <mapper>  
  49.                 <chainedmapper>  
  50.                     <!-- jar包文件只留文件名,去掉目录信息 -->  
  51.                     <flattenmapper/>  
  52.                     <!-- add lib/ prefix -->  
  53.                     <globmapper from="*" to="lib/*"/>  
  54.                 </chainedmapper>  
  55.             </mapper>  
  56.             <path refid="lib-classpath"/>  
  57.          </pathconvert>  
  58.   
  59.         <!-- jar文件的输出路径 -->  
  60.         <jar destfile="${output.dir}/${jarname}" basedir="${classes.dir}">  
  61.             <manifest>  
  62.                 <attribute name="Main-class" value="${mainclass}"/>  
  63.                 <attribute name="Class-Path" value="${mf.classpath}"/>  
  64.             </manifest>  
  65.         </jar>  
  66.     </target>  
  67. </project>  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值