我在 Spring Boot 项目中将 KieScanner
与 Drools 7.x 一起使用,动态规则加载在本地运行得很好。
但是,我在准备部署到环境时遇到了问题。
Drools 使用嵌入式 Maven 客户端来检查远程存储库或规则 Artifact 的新版本。远程存储库的位置通过标准 Maven settings.xml
进行。 Drools documentation指定 settings.xml
的位置可以是:
- Maven 安装:
$M2_HOME/conf/settings.xml
- 用户的安装:
${user.home}/.m2/settings.xml
- 由系统属性指定的文件夹位置
kie.maven.settings.custom
我研究了他们似乎需要的方法,但由于组织中的基础设施配置限制,我无法将静态文件部署到运行我们的可执行文件的主机(并且 Docker 也不是一个选项)。
是否有任何方法可以将 settings.xml
捆绑到可执行文件中并从那里加载它,或者以其他方式为远程存储库提供设置?
最佳答案
我最终深入研究了 KieScanner
的源代码,发现库中有一个功能,它用于解析 settings.xml
的路径,该功能记录在源项目,但不在 Drools 文档中。该库采用 String
作为路径,但如果该路径不存在,它会尝试将其转换为 URL。然后我就可以远程托管 settings.xml
并通过 URL 引用它。
关于java - Drools KieScanner——是否可以从可执行文件中加载settings.xml?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57630994/