我使用的是在Windows Server 2008 R2 SP1计算机上托管的Jenkins v1.546。
我为构建Maven Java项目设置了一个相当简单的工作。它在没有计划的情况下轮询SCM并获取远程构建触发器,需要身份验证令牌。它使用Subversion并使用svn update
执行干净检查。此外,它还有一个构建后的步骤,可以存档一些构建工件(即生成的WAR和WSDL)。
我遇到的问题是它存储在文件系统上的构建本身在其文件名中包含无效字符。这会导致我们的自动备份过程爆炸,无法使用'$'
更改或删除这些目录/文件。我自己也无法移动/删除这些文件夹或文件,但如果我重命名并删除$
,那么事情就可以了。哦,如果我尝试使用其中的$
跟随其中一个链接,它就无法解决。其他工作似乎都不这样做 - 当然,只是我的工作。任何人都知道为什么会发生这种情况以及我可以做些什么来解决这个问题?
我附加了多个屏幕截图,显示了错误的文件名和我的Jenkins作业设置。我不得不公开一些公司信息。如果我可以提供任何其他信息来帮助解决此问题,请告诉我。
此外,作为更新,我做了一些额外的研究,查看自我的版本(最新版本为1.557)以来每个已发布的Jenkins版本的更改日志。我在变更日志中看到了三个可能相关的问题,但我很难说。我不能简单地升级我们的詹金斯来测试这个理论,因为我需要提供一个超越预感升级的理由。
https://issues.jenkins-ci.org/browse/JENKINS-21023
https://issues.jenkins-ci.org/browse/JENKINS-20534
https://issues.jenkins-ci.org/browse/JENKINS-21958
答案 0 :(得分:1)
$
是Windows目录名中完全有效的字符。您可以手动创建一个文件夹,并删除它没有任何问题。
Jenkins Maven风格的作业使用com.company$moduleName
语法来分隔您构建的模块。如果你没有看到这个结构用于其他人的工作,那是因为他们要么没有建立一个Maven工作,要么他们在一个工作中没有多个模块。
虽然这些是符号链接(我在我的环境中没有看到),但有什么奇怪的。符号链接引用的位置可能会被删除,但链接仍然存在。在这种情况下,您将无法通过链接导航到该位置(这正是您所遇到的)
在删除链接之前,您的备份软件是否可能正在删除目标目录?
在任何情况下,在目录上做一个简单的dir
链接,看看它们链接到什么。然后验证这些目标位置是否存在。如果他们不这样做,您需要确定删除链接目标的人/内容
<强> 编辑: 强>
这似乎与您面临的问题更为相关。不幸的是,它被标记为“未解决”
的 https://issues.jenkins-ci.org/browse/JENKINS-20725 强>
问题源于这样的事实:符号链接引用了/
而不是\
的目标
我的Maven插件(不是Maven版本)是2.6。看看在Jenkins中升级你的Maven插件是否会对你有所帮助。另外,我从自动安装程序运行Maven 3.2.2。试试这个,因为我在模块中没有看到符号链接。