如何管理使用第三方开源库的项目的目录结构?

时间:2011-12-11 07:54:21

标签: open-source directory-structure

我开发了一个开源应用程序。我项目的目录结构是:

app
|-include
|-src
|-doc
|-build
|-lib
|-bin

我想使用另一个开源库。有一些选择:

  • 将第三方库源代码添加到includesrc目录。
  • 编译第三方库并添加到includelib目录。
  • 创建一个third_party目录并向其添加第三方库的完整源代码。
  • 创建一个third_party目录并向其添加已编译的第三方库。

最好的选择是什么?有没有更好的方法来管理使用第三方开源库的项目的目录结构?

2 个答案:

答案 0 :(得分:3)

  • 如果您计划升级第三方库,将其保存在特定的子目录中会更方便。您不必拥有特定的“第三方”目录;你可以在图书馆之后命名。

  • 想想版本控制的内容。

    • 如果您要将第三方库复制到存储库,那么不应该包含已编译的产品(使用source代替),因为它们通常无法区分和平台特定的。
    • 如果用户要单独获取库并将其添加到项目的树中,那么使用子目录将更容易取消归档并保证不会出现任何名称冲突;源与二进制应该留给用户。
    • 另一方面,如果您使用VCS管理的引用(例如SVN外部代码或Git子模块),您可能 将源包含在子目录中。

答案 1 :(得分:0)

根据您的具体情况,您应该记住的一个问题是,您是否有一天必须考虑这些第三方开源组件以及对许可证等的遵守情况。如果管理这种事情可能会更容易。您将第三方文件保存在自己的目录中。拥有未经修改的源代码和许可证以及返回到获得源代码的位置并且可以再次获取它的链接也将是有用的。我曾在那些有许可证合规性验证流程的公司工作,如果第三方来源以这种方式隔离,那么这些流程更容易通过。

https://softwareengineering.stackexchange.com/questions/234511/what-is-the-best-practice-for-arranging-third-party-library-licenses-paperwork与此相关。