Java:Ant打包jar文件(有lib目录)

本文介绍如何使用Ant构建工具来打包Java项目成Jar文件。详细解释了Ant配置文件build.xml的结构,包括设置路径、编译源代码及最终生成包含所有依赖的可执行Jar文件的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

使用Ant打包Jar文件
主要是lib/*.jar的路径需要注意: jar包里的jar包是不能被识别为classpath

使用方法:如果代码是如下面的目录结构组织的,不需要修改什么,直接在终端运行ant命令即可在out目录输出对应的jar文件。<?xml version="1.0" ?>
<project default="jar" name="Acid">
    <!-- 工程目录结构
    project
        |-bin
        |-src
        |-lib
        |-out
        |-build.xml
    -->
    <property name="lib.dir" value="lib"/>
    <property name="src.dir" value="src"/>
    <property name="classes.dir" value="bin"/>

    <property name="output.dir" value="out"/>
    <property name="jarname" value="Test.jar"/>
    <property name="mainclass" value="com.biao.Test"/>

    <!-- 第三方jar包的路径 -->
    <path id="lib-classpath">
        <fileset dir="${lib.dir}">
            <include name="**/*.jar"/>
        </fileset>
    </path>

    <!-- 1. 初始化工作,如创建目录等 -->
    <target name="init">
        <mkdir dir="${classes.dir}"/>
        <mkdir dir="${output.dir}"/>
    </target>

    <!-- 2. 编译 -->
    <target name="compile" depends="init">
        <javac srcdir="${src.dir}" destdir="${classes.dir}">
            <compilerarg line="-encoding UTF-8"/>
            <classpath refid="lib-classpath"/>
        </javac>
    </target>

    <!-- 3. 打包jar文件 -->
    <target name="jar" depends="compile">
        <copy todir="${output.dir}/lib">
            <fileset dir="${lib.dir}"/>
        </copy>

        <!--Create a property containing all .jar files,
        prefix lib/, and seperated with a space-->
        <pathconvert property="mf.classpath" pathsep=" ">
            <mapper>
                <chainedmapper>
                    <!-- jar包文件只留文件名,去掉目录信息 -->
                    <flattenmapper/>
                    <!-- add lib/ prefix -->
                    <globmapper from="*" to="lib/*"/>
                </chainedmapper>
            </mapper>
            <path refid="lib-classpath"/>
         </pathconvert>

        <!-- jar文件的输出路径 -->
        <jar destfile="${output.dir}/${jarname}" basedir="${classes.dir}">
            <manifest>
                <attribute name="Main-class" value="${mainclass}"/>
                <attribute name="Class-Path" value="${mf.classpath}"/>
            </manifest>
        </jar>
    </target>
</project>
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值