作为一名开发人员,我想创建一个 Maven 项目并构建一个可执行的独立 JAR 应用程序。(没有弹簧靴)
在开发和构建过程中,我想添加一个 Drools Kie 工件作为依赖项
<dependency>
<groupId>com.mycompany</groupId>
<artifactId>mydrools</artifactId>
<version>[1.0.0,)</version>
</dependency>
将我的应用程序构建为可执行 Jar 并运行它。我的应用程序具有调用 Drools 引擎的代码:
KieSession kSession = kContainer.newKieSession();
kSession.insert(myBean);
kSession.fireAllRules();
最重要的是,当我在生产环境中部署我的应用程序时:
- 我不想在我的生产服务器上安装 Maven
- 我不希望我的应用程序扫描本地或远程 Maven 存储库
- 我希望我的应用程序自动定期扫描我的 Drools Kie 工件的新版本,而不需要任何 Maven 存储库,只需查看文件系统
我试过了
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 );
加载 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