我是芭蕾舞女演员的新手。
我将平台库导入为可执行jar,这是java中使用jclouds的openstack swift api进行的内部操作方法调用。

JCLOUDS存在一个已知问题,由于gson版本高于2.5的问题与jclouds不兼容,导致无法构建
Apache jclouds java.lang.NoSuchMethodError when using Rackspace in a Spring Boot application

当我尝试从我的bal文件中执行此bal文件执行此inter op方法调用时遇到相同的错误。在检查了jar(在项目构建过程中由芭蕾舞女演员创建)后,它表明该jar是使用gson 2.7的一组预构建依赖项创建的。

有什么办法可以改变这种依赖关系,我也不太清楚芭蕾舞演员在bal文件的构建阶段如何打包所有这些jar。

这将有助于详细了解调用芭蕾舞女演员时引擎盖下发生的情况。

最佳答案

以下GitHub问题说明了为什么我们必须将com.google:gson:2.7与任何Ballerina可执行jar打包在一起。

https://github.com/ballerina-platform/ballerina-lang/issues/17878

让我尝试解释为什么Ballerina编译器将一些第三方jar与用于Ballerina程序创建的可执行jar打包在一起。我们可以将这些第三方jar分为两个主要类别。

芭蕾舞女演员运行时的

  • Jar依赖项
  • 在程序中导入的每个Ballerina模块的
  • Jar依赖项。

  • 芭蕾舞女演员运行时的依赖项

    每个Ballerina可执行程序都包含Ballerina运行时-执行任何Ballerina程序所需的JVM之上的最低限度的最低层。运行时包含baltina值,类型,lang lib中的Ballerina模块的Java实现,以及运行时类型检查器逻辑。该层对于在JVM之上实施Ballerina语言语义至关重要。

    目前,芭蕾舞女演员的运行时依赖于许多第三方Java库。 GSON是我们计划很快删除的此类库之一。您可以从上述问题中获取更多详细信息。

    芭蕾舞女演员模块的依赖性

    每个Ballerina模块,无论它属于standard library还是从Ballerina central中拉出,都可能取决于一个或多个第三方Java库。 Ballerina模块作者在开发Ballerina模块的项目的Ballerina.toml中列出了这些依赖项。这里有些例子。
  • ballerina/http
  • ballerina/kafka

  • 在研究此答案时,我意识到了一个调试工具的需求,该工具可以发出第三方库的详细信息。如果可以将此工具集成到ballerina命令行工具中,将非常好。这是我为跟踪此问题而创建的问题。

    https://github.com/ballerina-platform/ballerina-lang/issues/20116

    关于jclouds - 新手/芭蕾舞女 Actor 在运行构建时出现gson问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59106362/

    10-12 17:49