【问题标题】:Call a flow of one mule project in another mule project在另一个 mule 项目中调用一个 mule 项目的流程
【发布时间】:2021-01-24 19:40:19
【问题描述】:

我有一个 mule 项目-A,我需要从另一个 mule 项目-B 调用流。我在项目 B 的 pom.xml 中添加了<classifier>mule-plugin</classifier>。我在项目-A 的 pom 中添加了一个与项目-B 的组 ID、版本、工件 ID、分类器的依赖关系,并且还在项目-A 中创建了一个“导入”配置,其中我想要使用的项目-B 的流名称.我仍然无法在项目-A 中调用项目-B 的流程

【问题讨论】:

    标签: maven plugins mule mulesoft


    【解决方案1】:

    如果您只是为了在本地机器上进行测试而实施此操作,请按照以下步骤操作。你也可以看看Mule Domain Project的概念,它为同域下的应用做资源共享;使您能够调用其他应用程序流引用、全局配置等。

    注意:以下所有内容都必须在 Mule 4 中。

    首先,将您的 Project-B 导出为 mule 可部署 jar。

    步骤

    1. 右击Project-A并转到->mule
    2. 添加一个 Maven 依赖项。
    3. 从本地存储库中选择 Project-B.jar 并 添加。

      这将使您的项目作为 maven 依赖项导入 在你的 pom.xml 文件中。

    4. 确保您的 jar 添加到您的项目库中的 'A' 中 包浏览器。
    5. 转到Project-A 的全局元素并选择导入 配置。
    6. Import 配置添加到您的元素并指定 您要在Project-A 中使用的Project-B 主XML 文件。
    7. 最后刷新/重新启动您的主项目并检查是否可以 参考流程。

    如果您仍然无法完成这项工作,请尝试更新到最新版本的 studio,例如 4.3.1,这是一个非常稳定的版本。

    这里给出详细解释->Mule Shared Projects


    更新

    您也可以尝试在您的 cloudhub 运行时中执行相同的操作。您不需要域项目概念来执行此操作。基本上你完全导入了你的Project-B into Project-A;总而言之,使其成为一个混合的大型项目。

    【讨论】:

    • 我正在使用一个域项目,并且我的两个项目都属于同一个域,在这种情况下,我还需要将 Project-B 的可部署 jar 添加到 A 吗?
    • 不,我猜。如果您想将其他项目完全拉入主项目,我上面描述的方法是适用的。它基本上使您的次要项目成为主要项目的一部分。因此,您不能将它们视为两个独立的项目。但对于域项目,这基本上不是必需的。
    • 是什么阻止您将Project-B 完全作为依赖项拉入Project-A。毕竟,您确实是在使用 flow-ref 调用其他项目流。 Mule 领域项目完全充当两个松散耦合的独立项目。但我的方法也适用于 cloudhub 运行时。
    • 我想在不将项目 B 的 JAR 添加到项目 A 的情况下实现这一点,因为如果我添加了 jar,然后我修改了项目 B 中的一些代码,可以说我更改了流名称,所以它不会反映在项目 A 中,因为在创建 JAR 时流名称不同。
    • Amer,如果你需要完全一样,那么你必须使用mule domain project。我知道您已经尝试过域项目。但是,这方面有一些很好的文档。检查这个 apisero.com/…>。尝试每个步骤的链接并让我知道。此外,有时如果您只需要调用流和传输有效负载,您总是有 http 请求和 VM 队列连接器(应用程序间消息传递)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-08
    • 1970-01-01
    相关资源
    最近更新 更多