如果括号出现在字符串中,Jenkins Groovy Postbuild插件manager.getLogMatcher
正则表达式返回null
。
Jenkins控制台输出包含字符串:
(origin/pull-requests/1365/merge)
我需要从字符串1365中获取数字并使用:
manager.getLogMatcher("^origin/pull-requests/(.*?)/merge*").matches()
它失败了:
Java.lang.NullPointerException: Cannot invoke method matches() on null object
但如果我删除括号:
origin/pull-requests/1365/merge
一切都很好。
答案 0 :(得分:2)
如果查看sources,您会发现您调用的方法最终可能会返回null
引用。由于你的正则表达式无效,我猜这是这种情况。您需要考虑括号 - 特别是如果正则表达式以^
开头。以下两个应该有效:
"^\\(origin/pull-requests/(.*?)/merge.*"
^\\(origin/pull-requests/(.*?)/merge\\)