Ant移动,复制任务在jenkins中的映射驱动器上失败

时间:2013-05-06 13:12:09

标签: ant jenkins mapped-drive

我有一个具有移动和复制任务的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.FileNotFoundExceptionAnt 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

2 个答案:

答案 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路径而不是映射驱动器?