gpt4 book ai didi

java - 一种禁用动态加载的 JAR 之间共享 Gradle 依赖关系的方法

转载 作者:行者123 更新时间:2023-12-01 17:40:13 24 4
gpt4 key购买 nike

我编写了 Java“包装器”应用程序,该应用程序从 Web 下载实际的应用程序 JAR。基本上它是一个自动更新程序。然后,应用程序 JAR 由包装器 JAR 加载并执行其入口点函数,如下所示:

Class<?> classObject = this.getClassObject();

Method method = classObject.getMethod("run", String[].class);

method.invoke( classObject.newInstance(), (Object)this.getArgs().toArray( new String[0] ));

如果像这样加载应用程序 JAR,那么应用程序 JAR 和包装器 JAR 似乎都共享相同的依赖项。有没有办法让它们之间不共享依赖关系?

我打算自动更新。与安装的应用程序 JAR 相比,包装器 JAR 可能具有不同版本的依赖项。这意味着,如果某个依赖项有更新,我必须更新包装器和应用程序 jar,这违背了自动更新系统的目的。

最佳答案

通过添加 Shadow jar 插件并将这些冲突的依赖项重新定位到另一个命名空间来解决它。

关于java - 一种禁用动态加载的 JAR 之间共享 Gradle 依赖关系的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60966500/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com