java - 流口水 hello world Maven 依赖项

标签 java maven dependencies drools

我正在尝试使用 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/

相关文章:

makefile - Gnu Make 自动依赖生成

android - 如何解决 Android 工具中的 javac 增量构建未检测到应导致重新编译的更改?

java - 如果我知道导入级别路径,如何找到要放入库的 pom.xml 中的 Artifact id

java - 如何使两个数组随机相等

java - 多模块 hibernate 应用程序

eclipse - 非多项目环境的 Gradle 依赖项

java - 使用 Maven 将 XML 文件放入 jar 的非资源中

java - 持有人cardview改变textview颜色错误

java - 如何更改使选项卡式面板每隔几秒自行更改一次?

dependencies - Gradle无法解决依赖项group:org.apache.httpcomponents,module:httpmime