Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/336.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Gradle依赖关系管理:如何在android项目中维护旧版本和新版本的依赖关系?_Java_Android_Gradle_Build_Android Gradle Plugin - Fatal编程技术网

Java Gradle依赖关系管理:如何在android项目中维护旧版本和新版本的依赖关系?

Java Gradle依赖关系管理:如何在android项目中维护旧版本和新版本的依赖关系?,java,android,gradle,build,android-gradle-plugin,Java,Android,Gradle,Build,Android Gradle Plugin,我目前在我的一个android项目中面临着一种情况 情况是: 项目使用库A和B(新版本)。库A也依赖于库B(旧版本)。A和B都是独立维护的,它们的发布不能同步 旧库B和新库B的版本不兼容,因为新版本中的某些接口定义已更改。我认为这将在建设项目时产生一些问题 在我的android项目中,维护A和B的最佳方式是什么?如评论中所述,您的问题没有现成的解决方案,您最好的选择可能是让您的项目使用库A使用的库B的旧版本 只有当您真正依赖于仅在新版本B中可用的功能或修复程序时,才可以尝试使用重新定位的软件包来

我目前在我的一个android项目中面临着一种情况

情况是:

项目使用库A和B(新版本)。库A也依赖于库B(旧版本)。A和B都是独立维护的,它们的发布不能同步

旧库B和新库B的版本不兼容,因为新版本中的某些接口定义已更改。我认为这将在建设项目时产生一些问题


在我的android项目中,维护A和B的最佳方式是什么?

如评论中所述,您的问题没有现成的解决方案,您最好的选择可能是让您的项目使用库A使用的库B的旧版本

只有当您真正依赖于仅在新版本B中可用的功能或修复程序时,才可以尝试使用重新定位的软件包来构建您自己的库B版本。即:

  • 使用新版本的b作为依赖项,创建一个新项目,例如
    custom-b
  • 应用影子插件并将B类重新定位到另一个包中。例如,包
    com.library.b
    可以变成
    custom-b.com.library.b
  • 在本地发布
    custom-b
    项目的shadowjar,并使您的主项目依赖于此jar
这样,新版本B的类将在不同的包中可用,并且可以由您的代码使用


如上所述,如果您真的依赖于新版本的B,那么您应该只尝试这种方法,因为这会引入大量额外的复杂性,如果不是绝对必要的话,应该避免这种情况。或者,您当然也可以询问A的开发人员,他们是否计划在即将发布的版本中使用新版本的B。这也可能解决您的问题。

除非A和B具有不同的工件ID,并且使用完全不同的Java包,否则您想要的是不可能的。挑一个用它。哦,好的!:(非常感谢你的答复。