Jenkins执行mlDeployApp任务因.svn文件夹失败如何解决?
解决方案
方案1:配置ml-gradle忽略.svn目录(推荐,无需删除文件,不影响SVN增量更新)
直接在项目的build.gradle文件中添加ml-gradle的资源排除规则即可:
mlResourceExcludes = ["**/.svn/**"]
添加后重新执行构建,mlDeploy遍历数据库资源目录时会自动跳过所有.svn文件夹,不会再触发目录识别错误。
方案2:Jenkins构建前删除所有.svn隐藏文件夹
如果不想改动项目配置,可以在Jenkins自由风格项目的构建步骤中,在Invoke Gradle script步骤之前,新增一个「执行Windows批处理命令」步骤,填入以下命令:
for /r %WORKSPACE% /d %%d in (.svn) do @if exist "%%d" rd /s /q "%%d"
该命令会递归遍历整个Jenkins工作区,删除所有找到的.svn隐藏文件夹,再执行gradle构建就不会出现目录识别错误。
注意:该方案会删除工作区的.svn目录,下次SVN拉取代码时会触发全量检出,构建速度会变慢,适合代码体量小的项目使用。
方案3:配置SVN插件使用导出模式拉取代码
如果不需要保留SVN增量更新能力,可以修改Jenkins项目的SVN配置,将拉取策略改为「SVN导出」,导出的代码不会包含.svn隐藏文件夹,自然不会触发构建错误。该方案同样会导致每次构建全量拉取代码,仅适合小项目使用。
内容的提问来源于stack exchange,提问作者Ketan
相关产品推荐
相关产品推荐

