我们最近从Drools 5升级到了Drools 6,并遇到了令人不安的冲突问题。
我们已将kie-ci
导入到项目中。 kie-ci
带来sisu-guava
。 sisu-guava
更改了Google的番石榴中某些类的可访问性。不幸的是,它使用与谷歌的番石榴相同的包名。
由于我们在项目中使用谷歌的番石榴,我们遇到了类的冲突。
尝试从项目中删除sisu-guava
(使用maven排除)会导致可访问性异常,因为kie-ci代码尝试访问在sisu-guava
中公开但在google的番石榴中是私有的类。 / p>
任何想法如何解决这个问题。
答案 0 :(得分:0)
对于所有情况,这可能不是正确的解决方案,但我能够通过排除我的pom中的susi-guava jar来解决这个问题:
<dependency>
<groupId>org.jbpm</groupId>
<artifactId>jbpm-kie-services</artifactId>
<version>${jbpm.version}</version>
<exclusions>
<exclusion>
<groupId>org.sonatype.sisu</groupId>
<artifactId>sisu-guava</artifactId>
</exclusion>
</exclusions>
</dependency>
答案 1 :(得分:0)
我似乎在使用drools 6.2时遇到了同样的问题。 Drools依赖于番石榴10.0.1,因为我的项目依赖于番石榴16而且maven正在挑选版本16(正确)。
在检查依赖树时,我发现对guava的drools依赖性由“org.eclipse.sisu:org.eclipse.sisu.plexus:jar:0.0.0.M5:runtime”决定。
有一个较新版本的org.eclipse.sisu.plexus,所以我将以下内容添加到我的项目的pom中以获取最新版本,即:
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.eclipse.sisu</groupId>
<artifactId>org.eclipse.sisu.plexus</artifactId>
<version>0.3.1</version>
</dependency>
</dependencies>
</dependencyManagement>
现在,似乎没有对番石榴的依赖,对于drools而且问题已经解决,我的项目可以使用番石榴版本16。