Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Drools 6.4如何指定Maven repo要使用的内容_Maven_Drools_Kie - Fatal编程技术网

Drools 6.4如何指定Maven repo要使用的内容

Drools 6.4如何指定Maven repo要使用的内容,maven,drools,kie,Maven,Drools,Kie,我对口水还不熟悉,正在尝试使用KieScanner对我的规则进行热交换。我已经阅读了关于这个主题的文档和讨论。有几件事我不清楚。以下代码段直接来自Drools 6.4文档: KieServices kieServices = KieServices.Factory.get(); ReleaseId releaseId = kieServices.newReleaseId( "org.acme", "myartifact", "1.0-SNAPSHOT" ); KieContainer kCont

我对口水还不熟悉,正在尝试使用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 );
  • 如何告诉代码要使用哪个maven存储库
  • 进入jar文件的工件是什么?规则文件,以及pojo更改。还有别的吗
  • 非常感谢您事先的帮助

  • 默认情况下,它将使用标准Maven设置层次结构(系统、用户等),除非您指定自定义Maven设置文件
  • 为此,您可以参考:

    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工件和“model”的Jar只在自定义内部存储库中(而不是在公共repo或Maven central上)

  • KJAR应该只是以前版本的一个新版本
  • 我认为在这里强调我个人在热插拔规则方面的常见陷阱是很有意义的。。。请注意,如果在热插拔后不应重新触发规则,请确保LHS上有保护条件,这自然会确保得到保证,或者您应该将这些未修改的规则隔离在它们自己的资源(/文件)中

    希望这有帮助

  • 默认情况下,它将使用标准Maven设置层次结构(系统、用户等),除非您指定自定义Maven设置文件
  • 为此,您可以参考:

    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工件和“model”的Jar只在自定义内部存储库中(而不是在公共repo或Maven central上)

  • KJAR应该只是以前版本的一个新版本
  • 我认为在这里强调我个人在热插拔规则方面的常见陷阱是很有意义的。。。请注意,如果在热插拔后不应重新触发规则,请确保LHS上有保护条件,这自然会确保得到保证,或者您应该将这些未修改的规则隔离在它们自己的资源(/文件)中


    希望这有帮助

    非常感谢您的投入。我只是有一个快速跟进的问题。KJAR是规则中引用的规则和POJO(模型)吗?虽然您可以肯定地将模型的POJO放在同一个(KJAR)工件中,但我认为鼓励它们成为单独的JAR,例如单独的Maven依赖项。通过这种方式,您可以跨多个KJAR或其他与Drools不严格相关的代码库重用该模型。就我个人而言,这也是我的首选选择,我偶尔“嵌入”KJAR中的模型是在我开始一个新领域的时候,所以更容易在一个地方开始,然后在任何进一步的进化/稳定工作之前正确地重构它。或者它包括KieContainter和KieSession。我希望这方面有更多的例子。没有工作示例,我很难理解枯燥的文档。再次感谢您的帮助。不,严格来说,
    KJAR
    不包含
    KieContainer
    KieSession
    KJAR
    是一个打包容器,而其他容器是运行时对象。
    KieContainer
    KJAR
    的运行时对象表示。
    kiecainer
    中的
    KieBase
    是来自
    KJAR
    的一组规则(二进制形式)。可以有多个集合,每个集合具有不同的规则。而
    KieSession
    是drools会话的一个实例,用于执行规则(它有一个用于构建会话的
    KieBase
    引用和对POJO事实的引用)@Adriank如果它确实回答了关于Drools 6.4的原始问题,那么我们能将其标记为已回答吗?请说明如何指定Maven repo使用什么?单独提问会更容易。关于“我很难在没有工作示例的情况下遵循枯燥的文档”的快速评论。就我个人而言,我已经发现了可以涵盖所有可能组合的方法,包括可以从github检出并在本地运行的工作示例?希望能对你有所帮助,非常感谢你的意见。我只是有一个快速跟进的问题。KJAR是规则中引用的规则和POJO(模型)吗?虽然您可以肯定地将模型的POJO放在同一个(KJAR)工件中,但我认为鼓励它们成为单独的JAR,例如单独的Maven依赖项。通过这种方式,您可以跨多个KJAR或其他与Drools不严格相关的代码库重用该模型。就我个人而言,这也是我的首选选择,我偶尔“嵌入”KJAR中的模型是在我开始一个新领域时,所以更容易在一个领域中开始