我正在尝试使用 Drools 运行非常简单的应用程序,但在几个小时内无法设置具有所有依赖项的 pom.xml。
这是现在的样子:
<dependencies>
<!-- Drools engine -->
<dependency>
<groupId>org.drools</groupId>
<artifactId>drools-core</artifactId>
<version>5.4.0.Final</version>
</dependency>
<dependency>
<groupId>org.drools</groupId>
<artifactId>drools-compiler</artifactId>
<version>5.4.0.Final</version>
</dependency>
<!-- Test -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.7</version>
<scope>test</scope>
</dependency>
</dependencies>
就像在 https://community.jboss.org/wiki/DroolsMaven
但是我得到的是:
org.drools.RuntimeDroolsException: Unable to load dialect 'org.drools.rule.builder.dialect.java.JavaDialectConfiguration:java:org.drools.rule.builder.dialect.java.JavaDialectConfiguration'
at org.drools.compiler.PackageBuilderConfiguration.addDialect(PackageBuilderConfiguration.java:313)
at org.drools.compiler.PackageBuilderConfiguration.buildDialectConfigurationMap(PackageBuilderConfiguration.java:298)
at org.drools.compiler.PackageBuilderConfiguration.init(PackageBuilderConfiguration.java:187)
at org.drools.compiler.PackageBuilderConfiguration.<init>(PackageBuilderConfiguration.java:160)
at org.drools.builder.impl.KnowledgeBuilderFactoryServiceImpl.newKnowledgeBuilderConfiguration(KnowledgeBuilderFactoryServiceImpl.java:26)
at org.drools.builder.KnowledgeBuilderFactory.newKnowledgeBuilderConfiguration(KnowledgeBuilderFactory.java:85)
yada-yada-yada
Caused by: java.lang.RuntimeException: The Janino jar is not in the classpath
如果我尝试添加 Janino,我会得到另一个关于某些缺失类的异常(我认为我不应该在这里添加 Janino,因为它应该是其他东西的依赖项)。 我是否遗漏了 pom 中的任何内容?
谢谢!
莱昂蒂
最佳答案
默认情况下,drools-compiler 使用 eclipse 编译器 (JavaDialectConfiguration.ECLIPSE
) 作为 java 方言,这是一个传递依赖项:
<dependency>
<groupId>org.eclipse.jdt.core.compiler</groupId>
<artifactId>ecj</artifactId>
</dependency>
但是,如果您更喜欢 janino 编译器(JavaDialectConfiguration.JANINO
),则需要自己添加 janino 依赖项,因为它是可选的传递依赖项:
<dependency>
<groupId>org.codehaus.janino</groupId>
<artifactId>janino</artifactId>
<optional>true</optional>
</dependency>
查看 droolsjbpm-parent pom 以找出要使用的版本。
关于java - 流口水 hello world Maven 依赖项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11872328/