Ich möchte meine .drl-Dateien in .class-Dateien vorkompilieren, damit sie nicht zur Laufzeit kompiliert werden müssen. Die Dokumentation macht es so, als ob das Kie-Maven-Plugin dies tut, aber es erzeugt nichts für mich. Er kompiliert die Regeldateien, gibt aber nichts aus. Irgendwelche Vorschläge?Wie kompilieren Sie Drools-Regeln?
Ich bin mit dem mvn Paket Befehl ein, und meine pom.xml
Datei unter:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.kie</groupId>
<artifactId>kie-parent-with-dependencies</artifactId>
<version>6.0.1.Final</version>
<!-- relativePath causes out-of-date problems on hudson slaves -->
<!--<relativePath>../droolsjbpm-build-bootstrap/pom.xml</relativePath>-->
</parent>
<packaging>kjar</packaging>
<artifactId>default-kiesession</artifactId>
<name>Drools API examples - Default KieSession</name>
<dependencies>
<dependency>
<groupId>org.drools</groupId>
<artifactId>drools-compiler</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.kie</groupId>
<artifactId>kie-maven-plugin</artifactId>
<version>6.0.1.Final</version>
<extensions>true</extensions>
<dependencies>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
<version>1.6.1</version>
</dependency>
</dependencies>
</plugin>
</plugins>
</build>
<repositories>
<!-- Bootstrap repository to locate the parent pom when the parent pom has not been build locally. -->
<repository>
<id>jboss-public-repository-group</id>
<name>JBoss Public Repository Group</name>
<url>http://repository.jboss.org/nexus/content/groups/public/</url>
<layout>default</layout>
<releases>
<enabled>true</enabled>
<updatePolicy>never</updatePolicy>
</releases>
<snapshots>
<enabled>true</enabled>
<updatePolicy>daily</updatePolicy>
</snapshots>
</repository>
</repositories>
<scm>
<connection>scm:git:[email protected]:droolsjbpm/drools.git</connection>
<developerConnection>scm:git:[email protected]:droolsjbpm/drools.git</developerConnection>
<url>https://github.com/droolsjbpm/drools</url>
</scm>
</project>
DRL-Dateien werden nicht in .class-Dateien kompiliert. Sie werden kompiliert, wenn Sie eine Wissensdatenbank mit ihnen erstellen. Die Erstellung dieser Wissensbasis sollte während des Starts Ihrer Anwendung erfolgen. – Steve
Ich denke, ich misspoke, ich meine kompilieren in Binärform wie in der Dokumentation beschrieben: Die "Runtime" Anforderungen hier sind, wenn Sie Regeln als ihre binäre Form bereitstellen (entweder als KnowledgePackage Objekte oder KnowledgeBase Objekte usw.). Dies ist eine optionale Funktion, mit der Sie Ihre Laufzeit sehr gering halten können. Sie können Drools-Compiler verwenden, um Regelpakete "out of process" zu erstellen und sie dann auf einem Laufzeitsystem bereitzustellen. Dieses Laufzeitsystem benötigt nur drools-core.jar und knowledge-api zur Ausführung. –
Wenn Sie also ein Build erstellen, wird kein Jar im Zielverzeichnis erstellt. Das ist alles, was es tun soll. Es soll keine andere Art von Ausgabe erzeugen. – Steve