2016-06-30 18 views
0

Ich bin neu in Drools und versuche, KieScanner zu verwenden, um Hot-Swap meiner Regeln zu tun. Ich habe die Dokumentation und die Diskussionen zu diesem Thema gelesen. Einige Dinge sind mir nicht klar. Der folgende Codeausschnitt ist gerade von Drools 6.4 Dokumentation:Drools 6.4 KieScanner wie zu spezifizieren, was was Maven Repo zu verwenden

KieServices kieServices = KieServices.Factory.get(); 
ReleaseId releaseId = kieServices.newReleaseId("org.acme", "myartifact", "1.0-SNAPSHOT"); 
KieContainer kContainer = kieServices.newKieContainer(releaseId); 
KieScanner kScanner = kieServices.newKieScanner(kContainer); 
  1. Wie sage ich den Code was Maven-Repository zu verwenden?
  2. Welche Artefakte sind in der JAR-Datei enthalten? Regeldateien plus Pojo-Änderungen. Noch etwas?

Vielen Dank für Ihre Hilfe im Voraus.

Antwort

1
  1. Standardmäßig wird die Standardmaven-Einstellungshierarchie (System, Benutzer, ...) verwendet, sofern Sie keine benutzerdefinierte Maven-Einstellungsdatei angeben.

Hierzu können Sie the documentation chapter 4.2.3.5 "Settings.xml and Remote Repository Setup" Referenz:

Die settings.xml-Datei kann in 3 verschiedenen Standorten, die tatsächlichen Einstellungen verwendet befinden ist eine Zusammenführung dieser drei Standorten.

  • Die Maven installieren: $ M2_HOME/conf/settings.xml
  • eines Benutzers installieren. $ {User.home}/m2/settings.xml
  • Ordner von der Systemeigenschaft kie angegeben. maven.settings.custom

Die Datei settings.xml wird verwendet, um den Speicherort von Remote-Repositorys anzugeben.

Persönlich finde ich sehr hilfreich, um die KieScanner ein benutzerdefinierten Maven Einstellungen über die Systemeigenschaft kie.maven.settings.custom, Datei angeben, da ich normalerweise meine Kjar Artefakte und Glas des „Modells“ in einem benutzerdefinierten internen Repository nur (und nicht auf öffentlichen Repo oder Maven Central).

  1. Das KJAR sollte einfach eine neue Version des vorherigen KJAR sein.

Ich denke, hier sinnvoll zu markieren, was mit Hot-Swap-Regeln mein persönlicher häufiger Fehler ist ... Seien Sie sich bewusst drools incremental compilation works at resources level, so dass, wenn eine Regel soll nicht erneut ausgelöst nach dem Hot-Swap, entweder sicherstellen, dass Sie Schutzbedingung auf der LHS, die natürlich sicherstellen wird, dass garantiert wird, oder entweder sollten Sie diese unmodifizierten Regeln in ihren eigenen Ressourcen (/ Dateien) isoliert halten.

Hoffe, das hilft

+0

Vielen Dank für Ihre Eingabe. Ich habe nur eine kurze Follow-up-Frage zu diesem Thema. Die KJAR sind die Regeln und die POJOS (Modelle) in den Regeln korrekt? – Adriank

+0

während Sie definitiv die POJOs für das Modell innerhalb des gleichen (KJAR) Artefakts setzen können, denke ich, dass es für sie ermutigt wird, ein getrenntes JAR zu sein, zum Beispiel eine getrennte Maven Abhängigkeit. Auf diese Weise können Sie das Modell über mehrere KJARs oder andere Codebasen, die nicht eng mit Drools verbunden sind, wiederverwenden.Persönlich ist dies auch meine bevorzugte Option, die einzigen gelegentlichen Male, in denen ich das Modell in eine KJAR "einbettle", wenn ich auf einer neuen Domain anfange, also einfach einfacher, alles an einer Stelle zu starten und es dann richtig vorher zu gestalten jede weitere Evolutions/Stabilisierungsarbeit. – tarilabs

+0

Oder enthält es die KieContainer und KieSession. Ich wünschte, es gäbe mehr Beispiele dazu. Es ist schwierig für mich, trockene Dokumentation ohne Arbeitsbeispiele zu folgen. Danke nochmal für deine Hilfe. – Adriank