我正在建立一个非常复杂的管道来处理遗留构建。目前有 8 个阶段,还有更多的阶段 - 可能总共有 12-15 个阶段。
每个阶段执行非常相似的操作: - 获取一个列表,并为每个项目 - 在映射中创建条目 - 分配一个节点,并执行一组 BAT 脚本(是的,窗口),然后并行运行列表
当前管道长约 1,000 行,我收到“方法太大”错误
我正在将此 DSL 重构为单独的可加载脚本。
到现在为止还挺好。
但我刚刚运行了一个测试,表明加载脚本是对整个管道的补充。所以我想了解在这里做什么是最好的。
测试:
base.groovy:
def myVar //wchi is global (to basRef, i thought)
def setTest() { myVar='abc' }
def getTest() { return myVar }
Run Code Online (Sandbox Code Playgroud)
管道.groovy
stage('one') {
def basRef = load('base.groovy')
basRef.setTest()
echo basRef.getTest()
}
stage('two') {
def basRef = load('base.groovy')
echo basRef.getTest()
}
Run Code Online (Sandbox Code Playgroud)
第一阶段按预期显示“abc”。第二阶段也显示“abc”
我的问题:
我怎么知道使用loadable文件不会导致“方法太大”?
可加载文件的范围是什么?
我试过设置basRef = null允许垃圾收集工作,但我不确定它是否确实如此。
感谢您对此的任何指导。