Kie-Maven-Plugin не работает, не может скомпилировать артефакты правил

Я делаю пример проекта hello world maven с использованием drools версии 6.0.0.Final. Ниже приведена сборка моего pom-файла, я указал плагин kie-maven, но я могу заметить, что этот плагин не может быть запущен. Есть ли что-то, что я пропускаю здесь.

<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>

3 ответа

Я знаю, что это старый вопрос, но вы указали правильную упаковку?

<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?

Ваш конфиг выглядит нормально, но вы можете столкнуться с отсутствующими зависимостями плагина.

Используя последнюю версию плагина kie-maven-plugin (6.0.3-redhat-4), он предварительно компилирует правила drl/xls и т. Д. Внутри модуля в jar. Вы можете найти предварительно скомпилированный контент в jar, если взломаете его - yourmodule-version.jar/META-INF/defaultKieBase/kbase.cache.

Вы также должны увидеть, как maven собирает, вывод kie-maven-plugins "строит" на консоли - просто чтобы убедиться, что он выполняется.

Получил ту же проблему с 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 [.....]

Это довольно старая тема, но у меня была такая же проблема, и я не нашел ничего, что могло бы мне помочь. В моем случае это была не ошибка конфигурации, а ошибка синтаксиса правила.

У меня было что-то вроде:

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

Вместо того:

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

Изменение " = " на ": " исправило это. Я не знаю, почему это относилось к KIE.

Другие вопросы по тегам