规则引擎 Drools (一):第一个 Drools 工程

准备

  • JDK 1.7+
  • Maven 3
  • IDE,Eclipse or IntelliJ IDEA

开始

新建一个干净的 Maven 工程,开始第一个 Drools 工程吧!!!

编辑 pom.xml 文件,定义 Drools 版本属性:

<drools.version>6.4.0.Final</drools.version>  

编辑 pom.xml 文件,添加依赖:

<dependency>  
    <groupId>org.drools</groupId>
    <artifactId>drools-core</artifactId>
    <version>${drools.version}</version>
</dependency>  
<dependency>  
    <groupId>org.drools</groupId>
    <artifactId>drools-compiler</artifactId>
    <version>${drools.version}</version>
</dependency>  
<dependency>  
    <groupId>org.kie</groupId>
    <artifactId>kie-api</artifactId>
    <version>${drools.version}</version>
</dependency>  
<dependency>  
    <groupId>org.kie</groupId>
    <artifactId>kie-ci</artifactId>
    <version>${drools.version}</version>
</dependency>  

src/main/resources/META-INF 目录下,新建文件 kmodule.xml 文件:

<?xml version="1.0" encoding="UTF-8"?>  
<kmodule xmlns="http://jboss.org/kie/6.0.0/kmodule">  
    <kbase name="rules" packages="rules">
        <ksession name="ksession-rules"/>
    </kbase>
</kmodule>  

src/main/resources/rules 目录下,新建文件 test.drl 文件:

package rules;

rule "test"  
  when
  then
    System.out.println("it works!");
end  

新建 Java 类文件 App.java

public class App {  
    public static void main(String[] args) {
        KieServices kieServices = KieServices.Factory.get();
        KieContainer kieContainer = kieServices.newKieClasspathContainer();

        KieSession kieSession = kieContainer.newKieSession("ksession-rules");
        kieSession.fireAllRules();
        kieSession.destroy();
    } 
}

运行

运行结果:

it works!