从 camunda 中的多个模块加载流程定义

Load process definitions from multiple modules in camunda

我正在尝试为多模块项目配置 Camunda 自动资源部署。我要存档的是以下项目结构:

\---learnCamunda
|   pom.xml
+---application
|   |   pom.xml
|   +---src
|       \---main
|           +---java
|           |   \---com
|           |       \---camunda
|           |            \---learnCamunda
|           |               |   LearnCamundaApplication.java
|           |               \---configuration
|           |                       CustomOracleDialect.java
|           |                       FlywayConfiguration.java
|           |                       H2ConsoleConfiguration.java                 
|           \---resources
|               |   application.properties
|               |   
|               \---processes
|                       loanRequest.bpmn                      
+---contract-management
   |   pom.xml 
   \---src
      \---main
          +---java
          |   \---com
          |       \---camunda
          |           \---learnCamunda
          |               +---dto
          |               +---dts
          |               +---entity
          |               \---enums
          \---resources
              \---processes
                      DUMMY_PROCESS.bpmn

其中 applicationcontract managementlearnCamunda 项目的模块,我希望我的 application.properties 为 Camunda 资源扫描提供类路径以获取两者 loanRequest.bpmnDUMMY_PROCESS.bpmn。可以通过应用程序模块中的 application.properties 实现吗? (应用模块依赖合约管理模块)

如果可能,那么 which camunda 属性 -- 我应该设置它吗?

我已经尝试了 deployment-resource-pattern 的不同组合,但没有一个有效。

编辑: 我注意到的一件事是 PathMatchingResourcePatternResolver.findAllClassPathResources 从目标加载所有资源,我的编译模型在 target.classes.processes 中,解析器的类路径资源是 target.classes 所以它似乎没有递归完成,但我很难是时候确认一下了

您将 deployment-resource-pattern 属性 作为起点是正确的。默认情况下,它将包含 classpath*:**/*.bpmn,因此应该加载您的文件。

这表明问题是 deployment-resource-pattern 的值已更改或合同管理 jar 不在类路径中。

我建议您尝试调试应用程序以检查 camunda.deployment-resource-pattern 的值。然后查看构建过程并确保您的应用程序依赖于合同管理,它是相同的版本并且父 pom 正在构建它们。