假设我在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
答案 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>
此声明适用于我的脚本。