我们有一个大型项目,有多个单独的声明性管道文件定义。这用于从单个代码库构建不同的应用程序和安装程序。
目前,所有这些文件都包含一大块“代码”,用于生成电子邮件正文和 JIRA 更新消息。例子:
// Get a JIRA's to add Comments to
// Return map of JIRA id to comment text from all commits for that JIRA
@NonCPS
def getJiraMap() {
a bunch of stuff
return jiraset
}
// Get the body text for the emails
def getMailBody1() {
return "See: ${BUILD_URL}\n\nChanges:\n" + getChangeString() + "\n" + testStatuses()
}
etc...
Run Code Online (Sandbox Code Playgroud)
我想做的是将所有这些常用方法放在一个单独的文件中,所有其他管道文件都可以包含该文件。这看起来应该很简单,但我发现的所有示例似乎都相当复杂,涉及单独的 SCM - 这不是我想要的。
更新:
经过该链接中给出的各种建议,我创建了以下文件 - BuildTools.groovy:请注意,该文件与使用它的 jenkins 管道文件位于同一目录中。
import hudson.tasks.test.AbstractTestResultAction
import hudson.model.Actionable
Class BuildTools {
// Get a …Run Code Online (Sandbox Code Playgroud) 我们有一个应用程序,它使用MBeanServerConnection.invoke在MBean上调用各种远程方法.偶尔会有其中一种方法挂起.有没有办法让电话超时?如果通话时间太长,它将返回异常?
或者我是否必须将所有这些调用移动到单独的线程中,以便它们不会锁定UI并要求杀死应用程序?