如何代码重用 Jenkins 共享库?
How to code-reuse a Jenkins shared library?
我正在使用 Jenkins shared library,并且有包含函数和 class 定义如下的文件
src/com/company/someDir/SomeFile.groovy
----------------------------------------
package com.company.someDir
class SomeClass {
...
}
如何在 SomeOtherClass
定义中声明类型为 SomeClass
的变量?我试过这些...
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
...
}
...但是在我的 Jenkins 管道作业中,我在这两种情况下都收到“无法解析 class”编译错误。正确的做法是什么?
编辑:根据下面的评论
注意:我有一个 Jenkins 管道作业,内联管道代码很简单
node("build-node") {
// Shared library set up in Jenkins system config
@Library("shared-library")
def object = new com.company.someDir.SomeOtherFile()
object.somePublicFunc()
}
当我 运行 作业时出现错误。
在共享库和同一个包中,您不需要导入任何东西。在一个包装内,它是透明的。请从包中删除所有导入。
例如
src/com/company/someDir/SomeOtherFile.groovy
--------------------------------------------
package com.company.someDir
class SomeOtherClass {
SomeClass aClass=null // ...or...
com.company.someDir.SomeFile.SomeClass aClass=null
...
}
您在管道内部导入了 类。
例如
// 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()
}
祝你好运
我正在使用 Jenkins shared library,并且有包含函数和 class 定义如下的文件
src/com/company/someDir/SomeFile.groovy
----------------------------------------
package com.company.someDir
class SomeClass {
...
}
如何在 SomeOtherClass
定义中声明类型为 SomeClass
的变量?我试过这些...
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
...
}
...但是在我的 Jenkins 管道作业中,我在这两种情况下都收到“无法解析 class”编译错误。正确的做法是什么?
编辑:根据下面的评论
注意:我有一个 Jenkins 管道作业,内联管道代码很简单
node("build-node") {
// Shared library set up in Jenkins system config
@Library("shared-library")
def object = new com.company.someDir.SomeOtherFile()
object.somePublicFunc()
}
当我 运行 作业时出现错误。
在共享库和同一个包中,您不需要导入任何东西。在一个包装内,它是透明的。请从包中删除所有导入。
例如
src/com/company/someDir/SomeOtherFile.groovy
--------------------------------------------
package com.company.someDir
class SomeOtherClass {
SomeClass aClass=null // ...or...
com.company.someDir.SomeFile.SomeClass aClass=null
...
}
您在管道内部导入了 类。
例如
// 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()
}
祝你好运