我正在使用job-dsl插件来自动创建jenkins作业。以下是我的maven配置。使用jdk8&groovy运行job-dsl-plugin 2.4.4- java.lang.IncompatibleClassChangeError
<java.version>1.8</java.version>
<groovy.version>2.4.4</groovy.version>
<dsl.version>1.37</dsl.version>
<groovy.eclipse.compiler.version>2.9.101</groovy.eclipse.compiler.version>
<groovy.eclipse.batch.version>2.3.7-01</groovy.eclipse.batch.version>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<compilerId>groovy-eclipse-compiler</compilerId>
<source>${java.version}</source>
<target>${java.version}</target>
</configuration>
<dependencies>
<dependency>
<groupId>org.codehaus.groovy</groupId>
<artifactId>groovy-eclipse-compiler</artifactId>
<version>${groovy.eclipse.compiler.version}</version>
</dependency>
<dependency>
<groupId>org.codehaus.groovy</groupId>
<artifactId>groovy-eclipse-batch</artifactId>
<version>${groovy.eclipse.batch.version}</version>
</dependency>
</dependencies>
</plugin>
我使用jdk8 & Groovy的所有2.4.4,Groovy的蚀编译&一个超级罐使用遮阳插件生成。为了运行我的脚本,我添加了额外的类路径(在进程job-dsl /高级设置下)作为target/my-uber.jar。
当我运行我的测试当地一切正常,但在詹金斯我收到以下错误
java.lang.IncompatibleClassChangeError: the number of constructors during runtime and compile time for com.salesforce.dva.pipeline.generator.model.PkgType do not match. Expected -1 but got 2
at groovy.lang.MetaClassImpl.selectConstructorAndTransformArguments(MetaClassImpl.java:1413)
at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.selectConstructorAndTransformArguments(ScriptBytecodeAdapter.java:234)
我试图改变常规版本(较旧)&设置JDK 7 & 6,但所有的人都产生了相同错误。
我该如何解决这个问题?
感谢您的回复@daspilker。我尝试使用goorvy-1.8.9,java 1.7,groovy-eclipse-compiler 2.9.1-01,groovy-batch-compiler 2.3.1-01,但仍然得到了同样的错误“java.lang.IncompatibleClassChangeError:运行时的构造函数和com.salesforce.dva.pipeline.generator.model.PkgType的编译时间不匹配,预期为-1但得到2“ 我需要将groovy-eclipse-compiler版本更改为其他内容吗? – Nari
当我使用groovy.eclipse.compiler.version -2.8.0-01&groovy.eclipse.batch.version 2.1.8-01时,我的问题得到了解决。 感谢您的帮助@daspilker。 – Nari