Drools 6与guava存在sisu-guava冲突

5
我们最近从 Drools 5 升级到 Drools 6,并遇到了令人不安的冲突问题。
我们导入了 kie-ci ,它将 sisu-guava 引入。 sisu-guava 改变了来自 google guava 的某些类的可访问性。不幸的是,它使用与 google guava 相同的包名称。
由于我们在项目中使用 google guava,所以我们遇到了类的冲突。尝试从项目中删除 sisu-guava (使用 Maven 排除)会导致可访问性异常,因为 kie-ci 代码试图访问在 sisu-guava 中为公共但在 google guava 中为私有的类。
有什么好的解决方案吗?

我认为你最好在这些Drools用户Google群组中之一提问:Drools设置-https://groups.google.com/forum/#!forum/drools-setup(点击链接订阅)Drools使用-https://groups.google.com/forum/#!forum/drools-usage(点击链接订阅) - laune
我也遇到了同样的问题。有解决方案吗? - Basemasta
2个回答

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>

我们已经尝试过了。请查看问题的第二段。 - summerbulb

0

我似乎在使用drools 6.2时遇到了同样的问题。Drools依赖于guava 10.0.1,而我的项目依赖于guava 16,而maven正在选择版本16(正确的)。

检查依赖树后,我发现drools对guava的依赖是由“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似乎不再依赖Guava,问题已经解决,我的项目可以使用Guava的16版本。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接