You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无需Maven,能否用Jenkins与Nexus部署Ant构建的制品?

嘿,这个需求完全合理——既然已经有Ant和Java了,确实没必要引入Maven增加复杂度。我给你梳理一套简洁的Jenkins配置方案,完全贴合你的两个目标:

配置Jenkins任务'A':构建并部署制品到Nexus

咱们一步步来,确保每个环节都极简:

  • 第一步:拉取源码(如果需要)
    如果你的Ant脚本和代码存放在版本控制系统(Git/SVN)里,先在任务'A'的“源码管理”模块配置拉取逻辑,把代码和Ant文件拉到Jenkins工作目录。
  • 第二步:用Ant生成制品
    添加一个“构建步骤”,选择“调用Ant”,指定你的主Ant构建文件(比如build.xml),并勾选要执行的目标(比如package——这个目标要包含编译、打包成jar/war等生成制品的逻辑)。
    确保Jenkins全局工具配置里已经正确指定了Ant和JDK的路径,避免环境问题。
  • 第三步:部署到Nexus
    这里有两种无Maven的方案,选你顺手的:
    1. 用Jenkins插件(更省心)
      安装Nexus Artifact Uploader插件后,在任务'A'的“构建后步骤”里添加“Nexus Artifact Uploader”:
      • 配置Nexus服务器的地址、认证账号(要有上传权限)
      • 指定要上传的制品路径(比如**/target/your-artifact.jar)
      • 填写GAV坐标(GroupId、ArtifactId、Version)和目标仓库(比如releases或snapshots)
    2. 用Ant脚本直接调用Nexus API
      如果不想加插件,在你的Ant脚本里加一个deploy-to-nexus目标,用HTTP PUT请求上传:
      <target name="deploy-to-nexus" depends="package">
          <http url="http://your-nexus-domain/repository/your-repo/group-id/artifact-id/1.0.0/your-artifact-1.0.0.jar"
                method="PUT"
                src="${build.output.dir}/your-artifact.jar"
                username="nexus-upload-user"
                password="nexus-upload-pass"/>
      </target>
      
      然后在Jenkins的Ant构建步骤里直接调用这个deploy-to-nexus目标就行。
  • 第四步:记录制品标识(可选但建议)
    可以在任务'A'构建完成后,把制品的版本号或GAV信息写入一个文本文件(比如artifact-info.txt),方便后续任务'B'精准获取。

配置Jenkins任务'B':获取任务'A'生成的同一制品

核心是让任务'B'能定位到任务'A'刚生成的制品,这里有两种实用方式:

  • 方式一:直接从任务'A'的构建中复制制品
    安装Copy Artifact插件后,在任务'B'的“构建步骤”里添加“Copy artifacts from another project”:
    • 选择项目:任务'A'
    • 指定要复制的制品路径(和任务'A'生成的路径一致,比如**/your-artifact.jar)
    • 选择复制来源:可以选“Latest successful build”(最新成功构建),或者让用户手动选择构建版本
  • 方式二:从Nexus拉取制品
    和任务'A'的部署逻辑对应,用Ant脚本写一个下载目标:
    <target name="download-from-nexus">
        <get src="http://your-nexus-domain/repository/your-repo/group-id/artifact-id/1.0.0/your-artifact-1.0.0.jar"
             dest="${download.dir}/your-artifact.jar"
             username="nexus-download-user"
             password="nexus-download-pass"/>
    </target>
    
    如果版本号是动态的,你可以通过Jenkins构建参数传递(比如把任务'A'的版本号作为参数传入任务'B'),或者用任务'A'生成的artifact-info.txt文件里的信息来动态拼接下载URL。
  • 触发逻辑
    如果你想让任务'B'在任务'A'成功后自动运行,在任务'B'的“构建触发器”里勾选“Build after other projects are built”,然后填入任务'A'的名称即可。

几个小提醒

  • 确保Jenkins服务器能正常访问Nexus,账号权限足够(上传/下载)
  • 尽量把Ant脚本里的路径、版本号参数化,比如用${artifact.version}这样的变量,方便Jenkins通过构建参数灵活调整
  • 测试时先手动触发任务'A',确认制品能正常生成并上传到Nexus,再测试任务'B'的获取逻辑

内容的提问来源于stack exchange,提问作者Ranjeet

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 11:58:28