【发布时间】:2019-02-23 03:04:06
【问题描述】:
我正在尝试按照此处的“使用共享库扩展”说明将第 3 方库添加到我的管道共享库代码中:
https://jenkins.io/doc/book/pipeline/shared-libraries
@GrabResolver(name='custom', root='http://my.nexus/maven')
@Grab("com.packageA.serviceA:artifactA:1.0.0")
import com.packageA.serviceA.ClassA
这失败了,因为找不到 IvySettings 类。在另一个 StackOverflow 帖子之后:
我必须将它添加到我的 pom.xml:
<dependency>
<groupId>org.apache.ivy</groupId>
<artifactId>ivy</artifactId>
<version>2.4.0</version>
</dependency>
我解决了 IvySettings not found 问题。但是我为添加 @Grab 的类的所有 Spock 单元测试都失败了
java.lang.NoClassDefFoundError: com.mypackage.pipeline.client.MyClient
at java.lang.Class.forName(Class.java:348)
at net.sf.cglib.core.ReflectUtils.defineClass(ReflectUtils.java:386)
at net.sf.cglib.core.AbstractClassGenerator.create(AbstractClassGenerator.java:219)
at net.sf.cglib.proxy.Enhancer.createHelper(Enhancer.java:377)
at net.sf.cglib.proxy.Enhancer.createClass(Enhancer.java:317)
at org.spockframework.mock.runtime.ProxyBasedMockFactory$CglibMockFactory.createMock(ProxyBasedMockFactory.java:91)
at org.spockframework.mock.runtime.ProxyBasedMockFactory.create(ProxyBasedMockFactory.java:49)
at org.spockframework.mock.runtime.GroovyMockFactory.create(GroovyMockFactory.java:66)
at org.spockframework.mock.runtime.CompositeMockFactory.create(CompositeMockFactory.java:44)
at org.spockframework.lang.SpecInternals.createMock(SpecInternals.java:45)
at org.spockframework.lang.SpecInternals.createMockImpl(SpecInternals.java:281)
at org.spockframework.lang.SpecInternals.GroovyMockImpl(SpecInternals.java:199)
at myRollbackTest.Missing object(myRollbackTest.groovy:184)
这些测试使用 GroovyMock 和 GroovySpy。
有没有人让 Grab 与 Spock 的 GroovyMock/Spy 一起工作?
【问题讨论】:
-
如果没有可复现的测试用例 (MCVE) 恐怕没人能帮你。
-
好点。但我想我有一个理论。将在下面发布答案
标签: jenkins groovy jenkins-pipeline spock