减小Mule 4中的部署jar大小

时间:2019-01-23 19:08:25

标签: mule-esb mulesoft

我们的组织是Mule 4的新成员。在部署新api时遇到一些问题。我们的某些API大约需要10分钟才能部署。我们认为,这种延迟部分是由于Mule 4 api相比Mule 3部署而言,jar更大,因为所有相关的jar都打包在部署jar中。有时,新的部署会导致崩溃,并且服务器上的所有api都必须重新启动。

在Mule 3中,我相信您可以拥有多个api共享通用依赖项。这使我们可以使用更小的jar来部署新的api。除了领域项目外,在Mule 4中还有其他方法可以做到这一点吗?

我们尝试使用命令“ mvn package -DlightweightPackage”包装轻型罐子,但无法部署它们。即使我们将所需的存储库结构放在/ lib / mule / repository中,轻量级打包的JAR也不再包含classloader-model.json来配置应用程序在哪里寻找它的存储库(依赖项),因此它们将无法正确部署。 / p>

但是,我们已经使用默认程序包,在服务器关闭后从爆炸的JAR中删除了资源(依赖关系树),将依赖关系树移至/ lib / mule / resources(共享),然后在类加载器中修改了“ uri”爆炸应用程序(JAR)中的-model.json。然后,我们启动了服务器,应用程序运行正常。这似乎可行,但是一旦我们部署了某些东西,就会迫使我们启动和停止服务器。我们希望能够继续进行热部署的修补程序。

除了增加我们服务器上的资源之外,是否还有其他人遇到此问题或对如何解决此问题有任何想法?

谢谢!

2 个答案:

答案 0 :(得分:0)

您可以使用域来共享依赖关系。连接器和库都可以共享。

请注意,使用您描述的方法是无证的和不受支持的。它可能会消失或在将来的版本中更改。我强烈建议避免使用它。

答案 1 :(得分:0)

我写了一个maven插件,它替换了所有的repository / ** / *。jar文件 可以在本地存储库中使用占位符,稍后再将文件复制回 mule-application.jar。

mvn io.github.c-a-services:mule4-jar-size-reducer-maven-plugin:LATEST:jar-compress

及以后

mvn io.github.c-a-services:mule4-jar-size-reducer-maven-plugin:LATEST:jar-refill

有关更多选项和自动化的信息,请参见

https://github.com/c-a-services/mule4-jar-size-reducer-maven-plugin

文件本身不再需要太多空间:;-)

17:17:02 [INFO] refdata-2019.9.1-12-SNAPSHOT-mule-application.jar Size=81743321
17:17:02 [INFO] refdata-2019.9.1-12-SNAPSHOT-mule-application.zip Size=960544
相关问题