2

我有一个具有移动和复制任务的 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 自己的用户数据库”用于安全领域。我创建了一个名为“admin”的用户,并授予了所有权限。查看此链接后,我安装了Active Directory 插件并使用管理员帐户凭据启动 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
4

2 回答 2

4

显然,您使用的系统帐户没有此映射驱动器。在复制之前,尝试通过 Windows 的net use命令映射驱动器。在 Jenkins 中,您可以在执行 Ant 脚本之前在构建步骤中将其作为 shell 命令运行。

我面前没有 Windows 机器,但它应该看起来像这样:

net use R: /delete
net use R: /persistent:yes \\windows\share\path

net use R: /delete首先要删除任何已经存在的映射。

如果这不起作用,试试这个。这将帮助您为始终存在的系统帐户创建映射驱动器。

于 2013-05-14T12:22:04.343 回答
1

Jenkins 以什么用户帐户运行?如果它作为 SYSTEM 帐户运行,那么它可能看不到映射的驱动器。查看Map a network drive to be used by a service了解一些想法。

或者也许您可以使用 UNC 路径而不是映射驱动器?

于 2013-05-10T15:26:12.537 回答