med*_*117 6 java drools maven drools-guvnor kie
作为开发人员,我想创建一个 Maven 项目并构建一个可执行的独立 JAR 应用程序。(无弹簧靴)
在开发和构建过程中,我想添加一个 Drools Kie 工件作为依赖项
<dependency>
<groupId>com.mycompany</groupId>
<artifactId>mydrools</artifactId>
<version>[1.0.0,)</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)
将我的应用程序构建为可执行 Jar 并运行它。我的应用程序具有调用 Drools 引擎的代码:
KieSession kSession = kContainer.newKieSession();
kSession.insert(myBean);
kSession.fireAllRules();
Run Code Online (Sandbox Code Playgroud)
最重要的是,当我在生产环境中部署我的应用程序时:
我试过
String fileName = System.getenv("HOME") + "/libs/mydrools-1.0.0.jar";
File file = new File(fileName);
KieRepository kieRepository = ks.getRepository();
KieContainer kContainer = ks.newKieContainer(ks.newReleaseId("com.mycompany", "mydrools", "1.0.0"));
kieRepository.addKieModule(ks.getResources().newFileSystemResource(file));
KieScanner kScanner = ks.newKieScanner( kContainer );
kScanner.start( 10000L );
Run Code Online (Sandbox Code Playgroud)
加载 JAR 工作正常,但似乎我也被迫至少配置一个最小的 Maven 存储库(~/.m2 文件夹和一个 settings.xml)。我收到了 org.apache.maven 插件和相关类的一堆错误。
当然,我不希望我的生产环境依赖或依赖任何 Maven 配置。我只想运行一个带有另一个 JAR(例如 libs/mydrools-1.0.0.jar)的 JAR 作为依赖项,并可能在我更新 libs/mydrools-1.0.0.jar 时动态重新加载该依赖项。
基本上我需要将内部 Drools Kie Maven 插件设置为完全禁用(离线)。
Drools 6.2.0.Final 如何做到这一点?
更新
这个问题与
http://lists.jboss.org/pipermail/rules-users/2014-June/036245.html
答案是你不知道。KIE 6.*(和7)内置了maven,KieScanner 类使用maven 来查找更新。如果在 ReleaseId 中指定版本范围,例如 [1.0.0,) ,扫描器会更好地工作
我的公司正在将基于 KIE 的应用程序部署到生产中。我们正在 PROD 中设置一个 Artifactory 存储库,并且还将有一个 Maven 存储库。
您实际上可以通过不使用 KieScanner 来禁用 Maven 部分,而是使用 getKieClasspathContainer() 来获取 KIE 容器。不过,您不会对规则进行动态更新。
KIE 还提供了一个执行服务器,它将规则推送到 REST API 中。执行服务器规则也可以通过 maven 更新。
| 归档时间: |
|
| 查看次数: |
3459 次 |
| 最近记录: |