我有一个具有这种结构的共享库存储库:
(root)
+- src
| +- com
| +- company
| +- DeploySteps.groovy
+- vars
| +- MainDeploySteps.groovy
该库通过 Jenkinsfile 导入作业,如下所示:
library identifier: 'jenkinslib@master', retriever: modernSCM(
[$class : 'GitSCMSource',
remote : 'git@url.to.git:jenkinslib.git',
credentialsId: 'jenkins-credentials'])
src/com/company/DeploySteps.groovy 中的 repo 中的类有一个我想包含在 Jenkinsfile 中的方法(例如 CheckoutSCM)。
部署步骤.groovy:
def CheckoutSCM() {
useful steps here
}
是否有可能在 Jenkinsfile 中包含此特定方法,例如
import com.company.DeploySteps
然后像这样使用它:
CheckoutSCM('repo-here')
稍后在 Jenkinsfile 中?我多次阅读文档src
但没有找到答案是否有可能从文件夹中导入某些内容,而不仅仅是从vars
.
为什么我要问,因为现在导入时:import com.company.DeployUtils
然后尝试调用方法CheckoutSCM()
在 Jenkins 控制台输出中看到错误:
java.lang.NoSuchMethodError:在步骤中找不到这样的 DSL 方法“CheckoutSCM”
下面列出了可用的方法,CheckoutSCM
肯定没有我的)
那么,是否有可能从src
文件夹导入类到 Jenkinsfile?
PS我可以在Jenkinsfile MainDeploySteps中访问
MainDeploySteps {}
但是没有问题。