Kie-Maven-Plugin无法正常工作,无法编译规则工件

时间:2014-06-03 13:11:45

标签: drools redhat kie jboss-rules

我正在使用drools版本6.0.0.Final进行示例hello world maven项目。 下面是我的pom文件的构建,我已经指定了kie-maven-plugin但我可以注意到这个插件无法执行。这里有什么我想念的吗?

<build>
        <plugins>
            <plugin>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.1</version>
                <configuration>
                    <source>1.7</source>
                    <target>1.7</target>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.kie</groupId>
                <artifactId>kie-maven-plugin</artifactId>
                <version>${kieVersion}</version>
                <extensions>true</extensions>
            </plugin>
        </plugins>
        </build>

4 个答案:

答案 0 :(得分:1)

您的配置看起来不错,但您可能会遇到一些缺少的插件依赖项。

使用最新版本的kie-maven-plugin(6.0.3-redhat-4),它会将模块内的drl / xls等规则预编译到jar中。如果你打开它,你可以在jar中找到预编译的内容 - yourmodule-version.jar / META-INF / defaultKieBase / kbase.cache。

你应该在maven构建时看到控制台上的kie-maven-plugins“build”输出 - 只是为了检查它是否正在执行。

答案 1 :(得分:1)

我知道这是一个老问题,但您是否指定了正确的包装?

<project xmlns="http://maven.apache.org/POM/4.0.0" >
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.foo</groupId>
    <artifactId>fighting</artifactId>
    <version>1.0-SNAPSHOT</version>
    <packaging>kjar</packaging>

与使用kie-maven插件一起?

答案 2 :(得分:1)

6.3.0遇到了同样的问题。这是我用来激活drools编译的代码:

<plugin>
    <groupId>org.kie</groupId>
    <artifactId>kie-maven-plugin</artifactId>
    <version>6.3.0.Final-redhat-9</version>
    <extensions>true</extensions>
    <executions>
        <execution>
            <id>brms-rules-compilation</id>
            <phase>generate-resources</phase>
            <goals>
                <goal>build</goal>
            </goals>
            <inherited>false</inherited>
            <configuration>
            </configuration>
        </execution>
    </executions>
</plugin>

我必须明确告诉Maven在build阶段执行generate-resources目标以获得插件控制台输出:

[INFO] --- kie-maven-plugin:6.3.0.Final-redhat-9:build (brms-rules-compilation) @ myProject ---
[main] INFO org.drools.compiler.kie.builder.impl.KieRepositoryImpl - Adding KieModule from resource [.....]

答案 3 :(得分:0)

这是一个很老的话题,但是我遇到了同样的问题,却找不到任何帮助。就我而言,这不是配置错误,而是规则合奏错误。

我有类似的东西:

when $a : A(status == OK, $val : val)

而不是:

{{1}}

将“ =”更改为“:”可修复该问题。我不知道为什么它指的是KIE。