提问者:小点点

在构建lib项目时处理导出第3方库


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

我的问题是,在将库提供给实际项目时,应该对我正在使用的外部库做些什么。

我认为有几个选择:

>

  • 导出第3方库。问题:如果我导出这些第3方库,那么项目可能会面临一些问题,例如:a:如果他们已经在使用这些第3方库(具有不同的版本),那么他们将得到重复符号错误。如果他们删除了他们的第3方库,那么一些类可能存在也可能不存在。这也意味着每次一些应用程序需要我的库时,这将是一个艰难的集成噩梦。

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

    请告诉我最好的方法是什么。

    谢谢!


  • 共1个答案

    匿名用户

    这就是为什么有这么多构建管理工具的原因。使用其中之一。我不确定在经典的Android开发中,当前建议的构建工具是什么,但在非Android项目中,我会使用Ant Ivy或Maven。方法总是相同的:您定义第3方依赖项,例如为您的库项目定义编译或运行时依赖项。每次您有一个“可用”版本的lib,您都将其发布到一个共享存储库,如Nexus,这就是您的选择。另一方面,您的同事使用您的lib作为依赖项。然后,构建管理工具将像处理您的第3方库一样处理此依赖项。

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