【问题标题】:Ant move, copy tasks failing on mapped drives in jenkins蚂蚁移动,复制任务在詹金斯的映射驱动器上失败
【发布时间】:2013-04-30 06:07:32
【问题描述】:

我有一个包含移动和复制任务的 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”的用户,并授予了所有权限。在查看了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

【问题讨论】:

  • ant -verboseant -debug 都没有给你更多信息吗?
  • pastebin.com/pxPTeHS1 这是我使用详细的控制台。

标签: ant jenkins mapped-drive


【解决方案1】:

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

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

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

您想先执行net use R: /delete 以删除任何已经存在的映射。

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

【讨论】:

  • 因为我已经从 GUI 映射了驱动器,所以我没有想到这一点。顺便说一句,应该是net use R: /persistent:yes \\windows\share\path
  • 如果您从 GUI 映射驱动器,则它仅适用于该特定用户。我会修正我的语法。如果您不一直使用它,很难记住它,而且我面前没有一台 Windows 机器意味着我无法测试它。
  • 请注意,需要在具有管理员权限的cmd中使用上面的脚本,否则将无济于事!
【解决方案2】:

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

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

【讨论】:

  • 使用 UNC 路径可以完成这项工作,但我只需要通过映射驱动器来完成。请参阅编辑以获取更多信息。谢谢
猜你喜欢
  • 1970-01-01
  • 2016-01-18
  • 2014-09-04
  • 1970-01-01
  • 2016-01-12
  • 1970-01-01
  • 2017-01-29
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多