Java 在构建lib项目时处理导出第三方库的问题

Java 在构建lib项目时处理导出第三方库的问题,java,android,android-support-library,Java,Android,Android Support Library,我正在构建一个android库项目。我的库使用一些第三方库,如guava等。。现在其他团队需要使用我正在构建的库 我的问题是,在为实际项目提供库的同时,应该如何处理我正在使用的外部库 我认为有几个选择: 导出第三方库。 问题:如果我导出这些第三方库,那么项目可能会面临以下问题: 答:如果他们已经使用不同版本的第三方LIB,那么他们将获得复制符号错误。如果他们删除了第三方LIB,那么某些类可能存在,也可能不存在。这也意味着,每当某个应用程序需要我的库时,这将是一场艰难的集成噩梦 不要导出第三方库

我正在构建一个android库项目。我的库使用一些第三方库,如guava等。。现在其他团队需要使用我正在构建的库

我的问题是,在为实际项目提供库的同时,应该如何处理我正在使用的外部库

我认为有几个选择:

导出第三方库。 问题:如果我导出这些第三方库,那么项目可能会面临以下问题: 答:如果他们已经使用不同版本的第三方LIB,那么他们将获得复制符号错误。如果他们删除了第三方LIB,那么某些类可能存在,也可能不存在。这也意味着,每当某个应用程序需要我的库时,这将是一场艰难的集成噩梦

不要导出第三方库 问题:如果应用程序添加的第三方库中不存在my library使用的第三方库类,则应用程序将获得运行时异常

请告诉我最好的办法是什么


谢谢

这就是为什么有这么多构建管理工具。使用其中一个。我不确定在经典的Android开发中,当前推荐的构建工具是什么,但在非Android项目中,我会使用Ant+Ivy或Maven。方法总是一样的:您定义第三方依赖项,例如库项目的编译或运行时依赖项。每次你有一个可用的lib版本,你就把它发布到一个像Nexus一样的共享存储库中,这就是你想要的。 另一方面,您的同事使用您的库作为依赖项。然后,构建管理工具将像处理第三方LIB一样处理此依赖关系

如果您没有任何类型的构建和源代码管理基础设施,那么现在是获得它们的时候了,因为如果没有这些基本工具,您的问题就无法真正得到解决