Ant构建脚本解析:创建可运行JAR文件指南

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<project default="create_run_jar" name="Create Runnable Jar for Project Reindex with libraries in sub-folder">
    <property name="VERSION" value="3.6.10"/>
    <property name="NAME" value="easyimport" />
    <property name="DESTFILE" value="dist/${NAME}-${VERSION}/${NAME.jar}"
    <tstamp>
        <format property="CURRENT_TIME" pattern="yyyy-MM-dd HH:mm:ss"/>
    </tstamp>
    </target name="create_run_jar">
        <jar destfile="${DESTFILE}">
            <manifest>
                <attribute name="Main-Class" value="ecm.EasyImport"/>
                <attribute name="Build-By" value="Leon"/>
                <attribute name="Build-Time" value="${CURRENT_TIME}"/>
                <attribute name="Version" value="${VERSION}"/>
                <attribute name="Class-Path" value=". lib/aggs-matrix-stats-client-7.17.6.jar"/>
            </manifest>
            <fileset dir="bin">
                <exclude name="settings-*.yaml"/>
            </fileset dir="../EcmCommons/bin/"/>
        </jar>
        <checksum file="${DESTFILE}"/>
    </target>
</project>
这个XML文件是一个Ant构建脚本,用于自动化Java项目的构建过程。Ant是一个基于Java的构建工具,它使用XML文件(通常称为build.xml)来描述构建过程和依赖关系。下面是对这个Ant脚本的详细解释:

1. `<project>` 标签定义了项目的根元素,其中包含构建过程的所有指令和属性。
   - `default="create_run_jar"` 指定了默认的构建目标,即当运行ant命令时,如果没有指定目标,Ant将执行名为"create_run_jar"的目标。
   - `name="Create Runnable Jar for Project Reindex with libraries in sub-folder"` 定义了项目的名称。

2. `<property>` 标签用于定义项目属性,这些属性可以在构建过程中使用。
   - `name="VERSION" value="3.6.10"` 定义了一个名为VERSION的属性,其值为3.6.10。
   - `name="NAME" value="easyimport"` 定义了一个名为NAME的属性,其值为easyimport。
   - `name="DESTFILE" value="dist/${NAME}-${VERSION}/${NAME.jar}"` 定义了一个名为DESTFILE的属性,其值由NAME和VERSION属性动态构建,用于指定最终JAR文件的路径。

3. `<tstamp>` 标签用于获取当前的时间戳。
   - `<format>` 子标签用于格式化时间戳,`property="CURRENT_TIME"` 将格式化后的时间赋值给CURRENT_TIME属性。

4. `<target>` 标签定义了一个构建目标,名为"create_run_jar"。
   - 这个目标包含了创建可运行JAR文件的任务。

5. `<jar>` 标签用于创建JAR文件。
   - `destfile="${DESTFILE}"` 指定了JAR文件的输出路径,使用DESTFILE属性。
   - `<manifest>` 子标签定义了JAR文件的清单文件,其中包含了一些属性:
     - `Main-Class` 指定了JAR文件的主类,即程序的入口点。
     - `Build-By` 指定了构建者的名字。
     - `Build-Time` 指定了构建时间,使用CURRENT_TIME属性。
     - `Version` 指定了JAR文件的版本,使用VERSION属性。
     - `Class-Path` 指定了运行时类路径,这里包含了一个子目录lib和一个JAR文件。

6. `<fileset>` 标签用于指定要包含在JAR文件中的文件集合。
   - `dir="bin"` 指定了文件集合的根目录。
   - `<exclude>` 子标签用于排除特定的文件,这里排除了所有以settings-开头的YAML文件。

7. `<checksum>` 标签用于为JAR文件生成校验和,以确保文件的完整性。

**举例说明:**

假设你有一个名为"easyimport"的Java项目,你想要构建一个包含所有编译后的类文件和依赖库的可执行JAR文件。你可以使用这个Ant脚本来完成这个任务。

1. 首先,你需要确保你的项目已经编译,并且编译后的类文件存放在"bin"目录下。

2. 你还需要确保所有需要的依赖库都放在"lib"目录下。

3. 运行Ant构建脚本:
   ant create_run_jar
4. Ant会执行"create_run_jar"目标,这将创建一个包含所有类文件和依赖库的JAR文件,文件名会根据VERSION和NAME属性动态生成,例如"easyimport-3.6.10.jar"。

5. JAR文件的清单文件会包含主类、构建者、构建时间和版本信息。

6. 最后,Ant会为生成的JAR文件生成一个校验和文件,以确保文件的完整性。
  • 17
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值