zoukankan      html  css  js  c++  java
  • ant 编译打包Java程序

      一,下载安装ant 

      二  配置环境变量,测试环境变量配置是否成功

      三 新建build.xml文件,若项目文件目录为下面所述,基本上不用改什么东西。

    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.     <property name="output.dir" value="out"/>  
    14.     <property name="jarname" value="Test.jar"/>  
    15.     <property name="mainclass" value="com.biao.Test"/>  
    16.     <!-- 第三方jar包的路径 -->  
    17.     <path id="lib-classpath">  
    18.         <fileset dir="${lib.dir}">  
    19.             <include name="**/*.jar"/>  
    20.         </fileset>  
    21.     </path>  
    22.     <!-- 1. 初始化工作,如创建目录等 -->  
    23.     <target name="init">  
    24.         <mkdir dir="${classes.dir}"/>  
    25.         <mkdir dir="${output.dir}"/>  
    26.     </target>  
    27.     <!-- 2. 编译 -->  
    28.     <target name="compile" depends="init">  
    29.         <javac srcdir="${src.dir}" destdir="${classes.dir}">  
    30.             <compilerarg line="-encoding UTF-8"/>  
    31.             <classpath refid="lib-classpath"/>  
    32.         </javac>  
    33.     </target>  
    34.     <!-- 3. 打包jar文件 -->  
    35.     <target name="jar" depends="compile">  
    36.         <copy todir="${output.dir}/lib">  
    37.             <fileset dir="${lib.dir}"/>  
    38.         </copy>  
    39.         <!--Create a property containing all .jar files,  
    40.         prefix lib/, and seperated with a space-->  
    41.         <pathconvert property="mf.classpath" pathsep=" ">  
    42.             <mapper>  
    43.                 <chainedmapper>  
    44.                     <!-- jar包文件只留文件名,去掉目录信息 -->  
    45.                     <flattenmapper/>  
    46.                     <!-- add lib/ prefix -->  
    47.                     <globmapper from="*" to="lib/*"/>  
    48.                 </chainedmapper>  
    49.             </mapper>  
    50.             <path refid="lib-classpath"/>  
    51.          </pathconvert>  
    52.         <!-- jar文件的输出路径 -->  
    53.         <jar destfile="${output.dir}/${jarname}" basedir="${classes.dir}">  
    54.             <manifest>  
    55.                 <attribute name="Main-class" value="${mainclass}"/>  
    56.                 <attribute name="Class-Path" value="${mf.classpath}"/>  
    57.             </manifest>  
    58.         </jar>  
    59.     </target>  
    60. </project> 

      四  进入到build.xml文件目录,执行命令 Ant –buildfile  build.xml,即可生成相应的jar包。

      build.xml文件详解:

      build.xml为一个构建文件,每一个项目都会有一个构建文件。

      1.<project>标签

        <project>标签是构建文件的根标签,它可以有多个内在属性:

        default:表示默认的运行目标。

           name:表示项目名称。

         basedir:表示项目的基准目录。

         description:表示项目的描述。

      2. <target> 标签

        一个项目标签下可以有一个或多个target标签。一个target标签可以依赖其他的target标签。例如,有一个target用于编译程序,另一个target用于声称可执行文件。在生成

        可执行文件之前必须先编译该文件,因策可执行文件的target依赖于编译程序的target。Target的所有属性如下。 

        (1) name表示标明,这个属性是必须的。 
        (2) depends表示依赖的目标。 
        (3) if表示仅当属性设置时才执行。 
        (4) unless表示当属性没有设置时才执行。 
        (5) description表示项目的描述。 
        Ant的depends属性指定了target的执行顺序。Ant会依照depends属性中target出现顺序依次执行每个target。在执行之前,首先需要执行它所依赖的target。程序中的名为run的target的depends属性compile,而名为compile的target的depends属性是prepare,所以这几个target执行的顺序是prepare->compile->run。一个target只能被执行一次,即使有多个target依赖于它。如果没有if或unless属性,target总会被执行。

      3.<mkdir>标签 
        该标签用于创建一个目录,它有一个属性dir用来指定所创建的目录名,其代码如下:<mkdir dir=”${class.root}”/>通过以上代码就创建了一个目录,这个目录已经被前面

        的property标签所指定。

      4. <jar>标签

        该标签用来生成一个jar文件。

        destfile:打包的jar文件名。

        basedir:表示被归档的文件名。

        includes表示别归档的文件模式。 

        exchudes表示被排除的文件模式。 

      5. <javac>标签

        编译一个或者一组java文件

        srcdir:表示项目的源文件目录。

        destdir:表示项目的编译后的class文件的输出目录。

    http://blog.csdn.net/wolvesqun/article/details/52437776 打war包的步骤。

         

  • 相关阅读:
    DP——背包问题(三)
    堆——练习题
    DP——背包问题(二)
    二叉树的后序遍历(暴力版) 小白菜oj 1034
    树状数组2模板 Luogu 3368
    树状数组1模板 Luogu 3374
    DP——最长上升子序列(n^2与n log n)
    线段树(区间修改)模板题 Luogu 2357 守墓人
    c语言学习摘录
    python 学习摘录
  • 原文地址:https://www.cnblogs.com/wangzhaoshuang/p/7337850.html
Copyright © 2011-2022 走看看