簡體   English   中英

如何在沒有eclipse或任何其他IDE的情況下配置drools

[英]how to configure drools without eclipse or any other IDE

我得到了一個例子,比如如何在 eclipse 或其他 IDE 中安裝 drools 插件。 但是如何在不使用任何 IDE(如 Eclipse)的情況下配置 Drools。

  1. 創建一個 Maven 項目(使用您最喜歡的 IDE 或命令行)

  2. 將 Drools Compiler depedency 和一些日志兼容庫添加到您的 pom.xml(Maven 主項目文件):

     <dependencies> <dependency> <groupId>org.drools</groupId> <artifactId>drools-compiler</artifactId> <version>6.3.0.Final</version> </dependency> <dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-classic</artifactId> <version>1.1.5</version> </dependency> </dependencies>
  3. 使用以下內容創建 src/main/resources/META-INF/kmodule.xml 文件:

     <?xml version="1.0" encoding="UTF-8"?> <kmodule xmlns="http://jboss.org/kie/6.0.0/kmodule" />
  4. 創建你的 DRL 文件,如 src/main/resources/myrules.drl

     rule "hello" when $name : String() then System.out.println("Hello "+$name); end
  5. 創建基於 KieService 的代碼:

     import org.kie.api.KieServices; import org.kie.api.runtime.KieContainer; import org.kie.api.runtime.KieSession; public class Main { public static void main(String[] args) { KieServices ks = KieServices.Factory.get(); KieContainer kcontainer = ks.getKieClasspathContainer(); KieSession ksession = kcontainer.newKieSession(); String name="Xeetu"; ksession.insert(name); ksession.fireAllRules(); } }

您可以使用 Drools API 編譯 DRL 和其他 Drools 格式以進行規則創作,並且可以使用編譯后的 KieBase 來創建執行規則的會話。 下面是一個示例,但您必須出於各種原因對其進行調整。

KieServices kieServices = KieServices.Factory.get();
KieFileSystem kfs = kieServices.newKieFileSystem();
FileInputStream fis = new FileInputStream( "simple/simple.drl" );
kfs.write( "src/main/resources/simple.drl",
           kieServices.getResources().newInputStreamResource( fis ) );
KieBuilder kieBuilder = kieServices.newKieBuilder( kfs ).buildAll();
Results results = kieBuilder.getResults();
if( results.hasMessages( Message.Level.ERROR ) ){
     System.out.println( results.getMessages() );
     throw new IllegalStateException( "### errors ###" );
}
KieContainer kieContainer =
    kieServices.newKieContainer( kieServices.getRepository().getDefaultReleaseId() );
KieBase kieBase = kieContainer.getKieBase();
kieSession = kieBase.newKieSession();
// ... insert facts ...
kieSession.fireAllRules();

配置 KieBase 和/或 KieSession 可能需要額外的調用。 有關大量詳細信息,請參閱 API 和 Drools 文檔。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM