首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何对Jenkins共享库进行代码重用?

如何对Jenkins共享库进行代码重用?
EN

Stack Overflow用户
提问于 2021-04-07 00:39:41
回答 1查看 73关注 0票数 0

我使用的是Jenkins shared library,并且有包含如下定义的函数和类的文件

代码语言:javascript
复制
src/com/company/someDir/SomeFile.groovy
----------------------------------------
package com.company.someDir
class SomeClass {
  ...
}

如何在SomeOtherClass定义中声明SomeClass类型的变量?我试过这些..。

代码语言:javascript
复制
src/com/company/someDir/SomeOtherFile.groovy
--------------------------------------------
package com.company.someDir
import com.company.someDir.SomeFile
class SomeOtherClass {
  SomeClass aClass=null // ...or...
  com.company.someDir.SomeFile.SomeClass aClass=null
  ...
}

...but在我的Jenkins管道作业中,我在这两种情况下都得到了"Unable to resolve class“编译错误。正确的方法是什么?

编辑:根据下面的评论

注意:我有一个Jenkins管道作业,内联管道代码很简单

代码语言:javascript
复制
node("build-node") {
  // Shared library set up in Jenkins system config
  @Library("shared-library")
  def object = new com.company.someDir.SomeOtherFile() 
  object.somePublicFunc()
}

当我运行作业时,我得到了这个错误。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-04-07 16:43:45

在共享库和相同的包中,你不需要导入任何东西。在一个包中,它是透明的。请从包中删除所有导入。

例如:

代码语言:javascript
复制
src/com/company/someDir/SomeOtherFile.groovy
--------------------------------------------
package com.company.someDir

class SomeOtherClass {
  SomeClass aClass=null // ...or...
  com.company.someDir.SomeFile.SomeClass aClass=null
  ...
}

在管道内部,你有导入类。

例如:

代码语言:javascript
复制
// this must be first before import
@Library("shared-library") _    

// after that pipeline knows about SomeOtherFile class
import com.company.someDir.SomeOtherFile

node("build-node") {
  
  def object = new SomeOtherFile() 
  object.somePublicFunc()
}

祝好运

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66972865

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档