如何在Jenkins Groovy中的多行shell脚本中设置变量?

时间:2016-01-27 20:34:27

标签: jenkins groovy jenkins-workflow

假设我在Jenkins中有一个包含多行shell脚本的Groovy脚本。如何在该脚本中设置和使用变量?正常方式会产生错误:

import static org.junit.Assert.assertTrue;
import java.util.concurrent.atomic.AtomicBoolean;
import org.apache.commons.lang.mutable.MutableBoolean;
import org.junit.Test;

public class AssertionLambdaTest {
    @Test
    public void assertExecutedWithAtomicBoolean() {
        AtomicBoolean myBoolean = new AtomicBoolean(false);
        doStuff(() -> {
            assertTrue(true);
            myBoolean.set(true);
        });
        assertTrue(myBoolean.get());
    }

    @Test
    public void assertExecutedWithMutableBoolean() {
        MutableBoolean myBoolean = new MutableBoolean(false);
        doStuff(() -> {
            assertTrue(true);
            myBoolean.setValue(true);
        });
        assertTrue(myBoolean.booleanValue());
    }

    private void doStuff(Runnable runner) {
        runner.run();
    }
}
  

抓住:groovy.lang.MissingPropertyException:没有这样的属性:foo for class:groovy.lang.Binding

2 个答案:

答案 0 :(得分:79)

您需要更改为三重单引号'''或转义美元\$

然后你会跳过那个给你这个问题的groovy模板

答案 1 :(得分:10)

我只是在行尾添加'\'

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul>
<li id="tab-4">4</li>
<li id="tab-3">3</li>
<li id="tab-2">2</li>
<li id="tab-1">1</li>
</ul>

此声明适用于我的脚本。

相关问题