我有一个具有移动和复制任务的ant文件。源和目标位置位于映射的网络驱动器R:\
上。当我在命令提示符下运行它们时,构建成功但当我在Jenkins
中将其配置为作业时,任务失败并显示以下控制台输出。
BUILD FAILED
C:\Users\admin\.jenkins\jobs\CopyTask\workspace\build.xml:24: R:\dest does not exist.
Total time: 0 seconds
Build step 'Invoke Ant' marked build as failure
Finished: FAILURE
独立版本和Jenkins版本都使用相同的用户凭据。
我查看了问题copy in ANT throws java.io.FileNotFoundException和 Ant Copy Task: Failed to copy due to java.io.FileNotFoundException但它无助于我解决问题。
修改
Jenkins服务在本地系统帐户下运行,在Jenkins应用程序中,我使用的是“Jenkins自己的用户数据库”用于Security Realm。我创建了一个名为“admin”的用户,并授予了所有权限。在查看此link后,我安装了Active Directory Plugin并使用管理员帐户凭据启动了Jenkins服务。但我仍然收到以下错误消息
BUILD FAILED
C:\Users\admin\.jenkins\workspace\CopyTask\build.xml:11:
Failed to copy C:\Users\admin\FldrToCopy\data.7z to
R:\data.7z due to failed to create the parent directory for R:\data.7z
Total time: 0 seconds
Build step 'Invoke Ant' marked build as failure
Finished: FAILURE
答案 0 :(得分:4)
显然,您使用的系统帐户没有此映射驱动器。在复制之前,尝试通过Windows net use命令映射驱动器。在Jenkins中,您可以在执行Ant脚本之前在构建步骤中以shell命令运行它。
我面前没有Windows机器,但看起来应该是这样的:
net use R: /delete
net use R: /persistent:yes \\windows\share\path
您希望首先执行net use R: /delete
以删除任何已存在的映射。
如果这不起作用,请尝试this。这将帮助您创建一个始终存在的系统帐户的映射驱动器。
答案 1 :(得分:1)
Jenkins运行的用户帐户是什么?如果它作为SYSTEM帐户运行,那么它可能无法看到映射的驱动器。请查看Map a network drive to be used by a service了解一些想法。
或许您可以使用UNC路径而不是映射驱动器?