我是Drools的新手,我正在尝试使用KieScanner进行热交换规则。我已阅读有关此主题的文档和讨论。我不清楚一些事情。以下代码片段直接来自Drools 6.4文档:
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 );
非常感谢您的帮助。
答案 0 :(得分:1)
为此,您可以参考the documentation chapter 4.2.3.5 "Settings.xml and Remote Repository Setup":
settings.xml文件可以位于3个位置,实际位置 使用的设置是这3个位置的合并。
- Maven安装:$ M2_HOME / conf / settings.xml
- 用户的安装:$ {user.home} /.m2 / settings.xml
- 系统属性kie.maven.settings.custom
指定的文件夹位置settings.xml用于指定远程存储库的位置。
就个人而言,我发现通过系统属性kie.maven.settings.custom
向KieScanner指定一个自定义Maven设置文件非常有帮助,因为通常我有我的KJAR工件和#34;模型"仅在自定义内部存储库中(而不是在公共存储库或Maven中心)。
我觉得这里有意义突出我热插拔规则的个人常见缺陷...请注意drools incremental compilation works at resources level,所以如果热插拔后规则不应该重新触发,要么确保你在LHS上有自然保证会得到保证的保护条件,或者你应该将这些未经修改的规则保留在他们自己的资源(/文件)中。
希望这有帮助