Drools 6.4 KieScanner如何指定Maven repo使用什么

时间:2016-06-30 16:52:22

标签: maven drools kie

我是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 );
  1. 如何告诉代码使用什么maven存储库?
  2. 进入jar文件的工件是什么?规则文件,以及pojo更改。还有什么吗?
  3. 非常感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

  1. 默认情况下,它将使用标准的Maven设置层次结构(系统,用户,...),除非您指定自定义Maven设置文件。
  2. 为此,您可以参考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中心)。

    1. KJAR应该只是之前KJAR的新版本。
    2. 我觉得这里有意义突出我热插拔规则的个人常见缺陷...请注意drools incremental compilation works at resources level,所以如果热插拔后规则不应该重新触发,要么确保你在LHS上有自然保证会得到保证的保护条件,或者你应该将这些未经修改的规则保留在他们自己的资源(/文件)中。

      希望这有帮助