欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

使用Ant打包Java后台程序

程序员文章站 2024-03-24 18:54:28
...

概述

本文通过一个简单的Java Application例子描述如何用ANT完成基本的程序打包工作。包含文件拷贝、编译、打包三部分;完成这三部就可以得到一个可运行的程序包了。

ANT的安装,环境变量的设置等省略。网上有很多文章。

准备工作

先创建一个简单的Java程序,这个程序输出简单的”Hello ANT!!!”。程序依赖于第三方Jar包GSON。基本的程序结构是这样的:

使用Ant打包Java后台程序

在build下编译好启动脚本startup.bat。

java -jar AntJavaTest.jar

ant脚本build.xml放到tools/build目录下,打包编译生成的软件包都放runtime下面。正式项目可以再加一个压缩处理,这里省略。

编写build.xml文件

<?xml version="1.0" encoding="utf-8" ?>
<project name="AntTest" default="copy_startup_bat" basedir="../../">

    <!--定义当前时间-->
    <tstamp>
        <format property="current_date" pattern="yyyy_MM_dd_HH_mm_ss" locale="en"></format>
    </tstamp>

    <!--打包存放路径-->
    <property name="package_dest_path" value="runtime/JavaAntTest_${current_date}"></property>

    <!--定义依赖jar包的路径-->
    <path id="depend_lib_path">
        <fileset dir="lib">
            <include name="*.jar"></include>
        </fileset>
    </path>

    <!--- 组装依赖jar包的路径,用于mainifest文件的Class-Path -->
    <pathconvert property="class_path" pathsep=" ">
        <mapper>
            <chainedmapper>
                <flattenmapper></flattenmapper>
                <globmapper from="*" to="lib/*"></globmapper>
            </chainedmapper>
        </mapper>
        <fileset dir="lib">
            <include name="*jar"></include>
        </fileset>
    </pathconvert>

    <!--创建打包目录-->
    <target name="make_package_dir">
        <mkdir dir="${package_dest_path}"></mkdir>
    </target>
    <target name="make_bin_dir" depends="make_package_dir">
        <mkdir dir="${package_dest_path}/bin"></mkdir>
    </target>
    <target name="make_bin_lib" depends="make_bin_dir">
        <mkdir dir="${package_dest_path}/lib"></mkdir>
    </target>

    <!-- 拷贝依赖的Jar包 -->
    <target name="copy_lib" depends="make_bin_lib">
        <copydir src="lib" dest="${package_dest_path}/lib"></copydir>
    </target>

    <!--编译生成class文件-->
    <target name="compile" depends="copy_lib">
        <javac srcdir="src" destdir="${package_dest_path}/bin" includeantruntime="on">
            <classpath refid="depend_lib_path"></classpath>
        </javac>
    </target>

    <!-- 打jar包 -->
    <target name="create_jar" depends="compile">
        <jar jarfile="${package_dest_path}/AntJavaTest.jar" basedir="${package_dest_path}/bin">
            <manifest>
                <attribute name="Main-Class" value="com.elon.StartService"></attribute>
                <attribute name="Class-Path" value="${class_path}"></attribute>
            </manifest>
        </jar>
    </target>

    <!--拷贝启动bat文件-->
    <target name="copy_startup_bat" depends="create_jar">
        <copy file="tools/build/startup.bat" tofile="${package_dest_path}/startup.bat"></copy>
    </target>

</project>

测试运行

将当前路径切换到tools/build目录下,执行ant命令完成打包操作。运行startup.bat, 显示”Hello ANT!!!”。一个最简单的ant脚本开发完成。


使用Ant打包Java后台程序

为了将打包做成定时任务,还可以加一个批处理build.bat:

::启动打包程序
cd /d %cd%
start "开始打包程序..." ant