以下是一个完整的Ant build.xml脚本,实现Java项目编译、打包和FTP上传全流程自动化:

<?xml version="1.0" encoding="UTF-8"?>
<project name="JavaProjectDeploy" default="deploy" basedir=".">
    
    <!-- 1. 配置属性 -->
    <property name="src.dir" location="src"/>
    <property name="build.dir" location="build"/>
    <property name="classes.dir" location="${build.dir}/classes"/>
    <property name="jar.dir" location="${build.dir}/jar"/>
    <property name="jar.name" value="application.jar"/>
    <property name="main.class" value="com.example.Main"/>

    <!-- FTP服务器配置 -->
    <property name="ftp.server" value="ftp.yourserver.com"/>
    <property name="ftp.port" value="21"/>
    <property name="ftp.user" value="username"/>
    <property name="ftp.password" value="password"/>
    <property name="ftp.remote.dir" value="/deploy/"/>
    
    <!-- 2. 初始化任务 -->
    <target name="init">
        <mkdir dir="${build.dir}"/>
        <mkdir dir="${classes.dir}"/>
        <mkdir dir="${jar.dir}"/>
    </target>
    
    <!-- 3. 编译Java源码 -->
    <target name="compile" depends="init">
        <javac srcdir="${src.dir}" destdir="${classes.dir}" includeantruntime="false"/>
    </target>
    
    <!-- 4. 打包JAR文件 -->
    <target name="jar" depends="compile">
        <jar destfile="${jar.dir}/${jar.name}" basedir="${classes.dir}">
            <manifest>
                <attribute name="Main-Class" value="${main.class}"/>
            </manifest>
        </jar>
    </target>
    
    <!-- 5. FTP上传 -->
    <target name="ftp-upload" depends="jar">
        <ftp server="${ftp.server}"
             port="${ftp.port}"
             userid="${ftp.user}"
             password="${ftp.password}"
             remotedir="${ftp.remote.dir}"
             passive="yes">
            <fileset file="${jar.dir}/${jar.name}"/>
        </ftp>
        <echo>JAR文件已成功上传至FTP服务器</echo>
    </target>
    
    <!-- 6. 主部署流程 -->
    <target name="deploy" depends="ftp-upload">
        <echo>部署流程完成</echo>
    </target>
    
    <!-- 7. 清理构建 -->
    <target name="clean">
        <delete dir="${build.dir}"/>
    </target>
</project>

使用说明

  1. 目录结构要求

    project-root/
    ├── build.xml
    ├── src/
    │   └── com/example/Main.java
    └── lib/ (如有第三方库)
    

  2. 执行命令

    # 完整部署流程
    ant deploy
    
    # 仅编译打包
    ant jar
    
    # 清理构建产物
    ant clean
    

  3. 关键配置点

    • 修改main.class为实际主类全限定名
    • 更新FTP连接参数:
      <property name="ftp.server" value="实际服务器地址"/>
      <property name="ftp.user" value="实际用户名"/>
      <property name="ftp.password" value="实际密码"/>
      

  4. 依赖处理

    • 如需第三方库,在compile任务中添加:
      <classpath>
          <fileset dir="lib" includes="*.jar"/>
      </classpath>
      

流程说明

  1. 初始化:创建build/classesbuild/jar目录
  2. 编译:将src下的Java源码编译到build/classes
  3. 打包:创建可执行JAR文件到build/jar
  4. 上传:通过FTP将JAR文件传输到服务器
  5. 清理:删除构建产物(需手动执行)

注意:确保运行环境已安装ant且网络可访问FTP服务器,FTP任务需要Ant的commons-net库支持(通常已包含在标准Ant发行版中)。

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐