我有一个具有以下结构的共享库存储库:
(root)
+- src
| +- com
| +- company
| +- DeploySteps.groovy
+- vars
| +- MainDeploySteps.groovy
该库通过 Jenkinsfile 导入到作业中,如下所示:
library identifier: 'jenkinslib@master', retriever: modernSCM(
[$class : 'GitSCMSource',
remote : '[email protected] /cdn-cgi/l/email-protection:jenkinslib.git',
credentialsId: 'jenkins-credentials'])
src/com/company/DeploySteps.groovy 中的存储库中的类有一个方法(例如 CheckoutSCM),我希望将其包含在 Jenkinsfile 中。
部署步骤.groovy:
def CheckoutSCM() {
useful steps here
}
是否有可能在 Jenkinsfile 中包含此特定方法,例如
import com.company.DeploySteps
然后像这样使用它:
CheckoutSCM('repo-here')
稍后在 Jenkinsfile 中?我读文档 https://jenkins.io/doc/book/pipeline/shared-libraries/很多次但没有找到答案是否可以从src
文件夹,不仅来自vars
.
为什么我问因为现在导入时:import com.company.DeployUtils
然后尝试调用方法CheckoutSCM()
查看 Jenkins 控制台输出中的错误:
java.lang.NoSuchMethodError:找不到这样的 DSL 方法“CheckoutSCM”
步骤之间
下面列出了可用的方法,其中没有我的CheckoutSCM
一定)
那么,是否有可能导入类src
文件夹到 Jenkinsfile?
附:我可以在 Jenkinsfile MainDeploySteps 中访问
MainDeploySteps {}
不过没有任何问题。