如何减少" Jenkins管道输出路径

时间:2018-06-13 14:18:15

标签: jenkins jenkins-pipeline

我们正在构建我们的解决方案而没有任何" Pipeline"在Jenkins直到最近,所以我目前正在将我们的构建转移到多分支管道。

我遇到的问题是我们的解决方案有很多结构(很多子文件夹,有时还有一些大名字)。

目前,jenkins管道提取文件夹中的所有内容,如下所示:

D:\ws\ght-build_feature_pipelines-TMQ33LB5OQIQ5VXVMFKFDG2HWCD4MUOGEGUWJUOMZ5D2GI42BIQA

这是非常长的,现在我们达到了MSBuild

的260个字符的限制
  

C:\ Program Files(x86)\ Microsoft Visual   工作室\ 2017年\专业\的MSBuild \ 15.0 \斌\ Microsoft.Common.CurrentVersion.targets(2991,5):   错误MSB3553:资源文件   "物镜\推出\ xx.aaaaaaaaaa.yyy.bbbbbb.dddddddddddddd.yyyyyyy.vvv.dddddddddd.Resources.resources"   名称无效。项目元数据"%(FullPath)"无法应用   到了路上   "物镜\推出\ xx.aaaaaaaaaa.yyy.bbbbbb.dddddddddddddd.yyyyyyy.vvv.dddddddddd.Resources.resources&#34 ;.   指定的路径,文件名或两者都太长。完全   限定文件名必须少于260个字符,并且   目录名称必须少于248个字符。   [d:\ WS \ GHT-build_feature_pipelines-TMQ33LB5OQIQ5VXVMFKFDG2HWCD4MUOGEGUWJUOMZ5D2GI42BIQA \ SRC \ BBBBBB \ DDDDDD \ dddddddddddddd \ YYYYYYY \ xx.aaaaaaaaaa.yyy.bbbbbb.dddddddddddddd.yyyyyyy.vvv \ xx.aaaaaaaaaa.yyy.bbbbbb.dddddddddddddd.yyyyyyy.vvv。的csproj]

我们有很多案例,长度很大,重构一切真的很重要,所以我正在研究如何指定jenkins更小的路径?

2 个答案:

答案 0 :(得分:3)

实际上你可以设置一个java属性来指定目录名称的lentgth,例如:

-Djenkins.branch.WorkspaceLocatorImpl.PATH_MAX=20

要使其永久化,您必须在jenkins java启动配置文件中指定此属性。

您也可以使用jenkins脚本控制台读取和编写此属性以进行临时更改,或者只是试一试,因为它会立即生效,例如。

println jenkins.branch.WorkspaceLocatorImpl.PATH_MAX
jenkins.branch.WorkspaceLocatorImpl.PATH_MAX = 20
println jenkins.branch.WorkspaceLocatorImpl.PATH_MAX

将此值设置为0会更改路径生成行为。

详情请查看:
https://issues.jenkins-ci.org/browse/JENKINS-34564
https://issues.jenkins-ci.org/browse/JENKINS-38706

答案 1 :(得分:2)

我最终做了什么:

pipeline {
    agent {
        node{
            label 'windows-node'
            customWorkspace "D:\\ws\\${env.BRANCH_NAME}"            
        }
    }
    options{
        skipDefaultCheckout()
    }
...
}

我做了结帐的一步。我更容易找到一份“每份工作”#34;行为,没有触及jenkins全球设置。