1.eclipse环境配置见https://www.jianshu.com/p/b4c291a18bea
2.新建maven项目,结构如下
3.规则配置
package com.rules
rule “rule001”
when
//eval(true);
then
System.out.println(“hello world!”);
end
4.测试程序
package com.wise.drools;
import org.kie.api.KieServices;
import org.kie.api.runtime.KieContainer;
import org.kie.api.runtime.KieSession;
public class Drools7xTest {
public static void main(String[] args) {
// 构建KieServices
KieServices ks = KieServices.Factory.get();
KieContainer kieContainer = ks.getKieClasspathContainer();
// 获取kmodule.xml中配置中名称为ksession-的session,默认为有状态的。
KieSession kSession = kieContainer.newKieSession("ksession");
int count = kSession.fireAllRules();
System.out.println("命中了" + count + "条规则!");
kSession.dispose();//释放状态
}
}
5.测试结果如下:
21:44:40.184 [main] INFO org.drools.compiler.kie.builder.impl.ClasspathKieProject - Found kmodule: file:/E:/zbhkproject/drools-demo/target/classes/META-INF/kmodule.xml
21:44:40.187 [main] DEBUG org.drools.compiler.kie.builder.impl.ClasspathKieProject - KieModule URL type=file url=/E:/zbhkproject/drools-demo/target/classes
21:44:40.395 [main] DEBUG org.drools.compiler.kie.builder.impl.ClasspathKieProject - Found and used pom.properties E:\zbhkproject\drools-demo\target\classes\META-INF\maven\com.wise\drools-demo\pom.properties
21:44:40.399 [main] DEBUG org.drools.compiler.kie.builder.impl.ClasspathKieProject - Discovered classpath module com.wise:drools-demo:0.0.1-SNAPSHOT
21:44:40.402 [main] INFO org.drools.compiler.kie.builder.impl.KieRepositoryImpl - KieModule was added: FileKieModule[releaseId=com.wise:drools-demo:0.0.1-SNAPSHOT,file=E:\zbhkproject\drools-demo\target\classes]
21:44:41.326 [main] DEBUG org.drools.core.common.DefaultAgenda - State was INACTIVE is now FIRING_ALL_RULES
hello world!
21:44:41.331 [main] DEBUG org.drools.core.common.DefaultAgenda - State was FIRING_ALL_RULES is now HALTING
21:44:41.331 [main] DEBUG org.drools.core.common.DefaultAgenda - State was HALTING is now INACTIVE
命中了1条规则!
6.针对运行异常详细依赖包如下:
4.0.0
<groupId>com.wise</groupId>
<artifactId>drools-demo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>drools-demo</name>
<url>http://maven.apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<drools-version>7.0.0.Final</drools-version>
</properties>
<dependencies>
<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>com.thoughtworks.xstream</groupId>
<artifactId>xstream</artifactId>
<version>1.4.9</version>
</dependency>
<dependency>
<groupId>org.eclipse.jdt</groupId>
<artifactId>core</artifactId>
<version>3.3.0-v_771</version>
</dependency>
<dependency>
<groupId>org.antlr</groupId>
<artifactId>antlr-runtime</artifactId>
<version>3.5.2</version>
</dependency>
</dependencies>