Мне нравится пример того, как устанавливать плагины слюни в eclipse или другой среде IDE. Но как я могу настроить drools без использования какой-либо IDE, такой как eclipse.Как настроить слюни без затмения или любой другой среды IDE
ответ
Вы можете скомпилировать DRL и другие форматы Drools для создания правил, используя API 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.
Создание проекта Maven (с помощью вашей любимой IDE или COMAND строки)
Добавить 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>
Создание SRC/главная/ресурсы/META-INF файл/kmodule.xml с содержимым:
<?xml version="1.0" encoding="UTF-8"?> <kmodule xmlns="http://jboss.org/kie/6.0.0/kmodule" />
Создать файл DRL как SRC/главная/ресурсы/myrules.drl
rule "hello" when $name : String() then System.out.println("Hello "+$name); end
Создать свой 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(); } }
Спасибо за ваш ответ – Xeetu