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

时间:2014-07-14 18:30:24

标签: java android android-support-library

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

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

我认为很少有选择:

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

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

  3. 请告诉我们最好的方法。

    谢谢!

1 个答案:

答案 0 :(得分:0)

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

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